なのまるっす!
今年も通称サバフェス!こと「Cloud Server Festa 2015 Spring」に参加しています!
もくじ
Cloud Server Festa 2015 Spring のテーマはDBとioDrive
今回「Cloud Server Festa 2015 Spring」はDBをioDriveで最高の性能を引き出すこと!
レギュレーション
出来るだけざっくりと、今回の大会のレギュレーション
- サバフェス実行委員の用意したデータでベンチマークが正常に取得できること
- データの整合性が保たれた状態で、ベンチマークが実行されていること
- DBはMySQL, MariaDB, PerconaDBのstable版のいずれか
- DBのストレージエンジンはinnodbとその互換を利用するもの
- 競技の期間は5日間
- 「競技者にチューニングが許可されている対象」がある
- 禁止項目もある!
- Mackerelが動作していない状態でのベンチマーク結果は無効
さらに最新で詳しいレギュレーションはこちら! レギュレーション | Cloud Server Festa 2015 Spring 「サバフェス!」
「競技者にチューニングが許可されている対象」
思ったより少ないけど、まぁこんなものかと〜- OS設定
- DB設定
- Network設定
- ioDrive設定
「競技者にチューニングが禁止されている対象」
禁止項目がかなり細かくて、厳しいw- kernelのバージョン
- OSのバージョン
- ホスト名
- IPアドレス、ネットマスク
- sshアクセス制限
- sshのポート
- ローカルディスクのRAID設定
- DB内のデータ
- DBのポート tcp3306
- kernel,DBその他ソフトウェアのソースコード
- fio-formatにて-s,-oオプションにて容量を変更すること(-bでブロックサイズを変更することは可)
1日目 金曜日・・・
さすがに平日なので、仕事が終わってから作業開始!メール見てなくて、すぐにテンパるw
作業の流れ
- ログインの公開鍵を提出
→ 本当はもっと早く出すべきだったw- 踏み台サーバーにログイン! → 失敗するw
(IDCFのクラウドサーバーからログインする必要があったw)- Mackerelにログイン
- IDCFクラウドにサーバー構築
- アカウント作成と公開鍵の設定
- ssh configの設定をして「SSH Proxy」ですぐに接続できる環境の作成
- yum で全てのDBが入れられるように準備
ssh configの設定をして「SSH Proxy」ですぐに接続できる環境の作成
以下の様なconfigを作成してアクセスできるようにしました!.ssh/config
ServerAliveInterval 30 ServerAliveCountMax 120 host gateway HostName gateway User snickerjp Port 10022 StrictHostKeyChecking no UserKnownHostsFile=/dev/null IdentityFile /home/snickerjp/.ssh/id_rsa-serverfesta Host serverfesta HostName fumidai User Team-D Port 10022 StrictHostKeyChecking no UserKnownHostsFile=/dev/null IdentityFile /home/snickerjp/.ssh/id_rsa-serverfesta ProxyCommand ssh -W %h:%p gateway # Host bearmetal Host baremetal HostName iodrive-machine User root Port 22 StrictHostKeyChecking no UserKnownHostsFile=/dev/null IdentityFile /home/snickerjp/.ssh/id_rsa-serverfesta ProxyCommand ssh -W %h:%p serverfesta
とこんな感じ。
これで、SSHのキーをサーバーに置かなくてすむ。
各サーバーにアクセスするときは、以下の様なコマンドを発行する!
# サバフェス運営が準備した「踏み台サーバー」へのログイン ssh serverfesta # ioDriveサーバーにログイン ssh bearmetal
yum で全てのDBが入れられるように準備
- MySQL 5,5,5.6
yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm # 一度無効化しておく 必要になったらenablerepoすればいい sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/mysql-community.repoより詳細はこちら → MySQL :: Download MySQL Yum Repository
- MariaDB 5.5,10.0
# Toolで作ったRepoファイルを置く [mariadb55] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB enabled=0 # 追加 gpgcheck=1 sudo yum install MariaDB-server MariaDB-client詳しくは本家のドキュメント
- MariaDB - Setting up MariaDB Repositories - MariaDB
- Installing MariaDB with yum - MariaDB Knowledge Base
- Percona Server
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm # 一度無効化しておく 必要になったらenablerepoすればいい sed -i -e "s/enabled¥ ¥=¥ 1/enabled=0/g" /etc/yum.repos.d/percona-release.repoより詳細こちら → Percona yum Repository — Percona Server 5.5 Documentation
とまあ、一日目はこんな感じで0時は過ぎておりましたとさw
2日目 土曜日・・・
今度は休みなので、出来る!って思ったけど甘かったw他にもスケジュール入っているし、他のブログも書かなきゃいけないし(言い訳w
朝にチラチラッっと、作業してみた。
ゴニョゴニョしてみたw
実際の作業なので、現在の開催中は内容が書けないっすね!- MySQL、MySQL互換のミドルウェアを入れる
- fstab まわりを見なおしてみる
踏み台サーバーにある「README」でハマるw
踏み台サーバーにおいてあるサンプル「my.cnf」にTypoがあってハマるw普通に直して動きましたよw
3日目 日曜日・・・
そもそもチームでやっているのに、「作業履歴がない!」って怒られたので、AnsibleのPlaybookをゴニョゴニョ作っているなり〜これは、終わってから公開できるものはする見込み〜
AnsibleのPlaybookを作っていたわけですが。(チームメンバーに変更履歴がわからないと言われw)
と、言ってもAnsibleのPlaybookに自信があるわけではないので、テスト環境が欲しくなりました。
で、Ansibleのテスト環境をVagrantで作りました!
IDCFのクラウドってCloudstackベースで、Vagrantのテンプレートも公開しているんですよ!- Vagrant-cloudstackとIDCF-API(coudstack-api)を使って、試験環境を作る
- 試験したもの(AnsibleのPlaybook)を、チームメンバーに渡す
全然ioDriveのチューニングしてないwww
ま、これがチームを組んだいいところですね〜
これで、一日目にやっていたことが全てAnsibleのPlaybookに吸収されましたとさw
Vagrant-idcf は公開
Vagrant-idcf なるものを作りました。IDCFのエンジニアブログに紹介されていたものが、以前のIDCFクラウドなので「今回のには使えないな〜」って事でWebの情報集めて作ってみました!
特別秘密にしておく理由もないので、公開しておきました。
明日から平日〜♪ 満喫しよ~っとw
4日目 月曜日・・・
いやね、もう平日ですから。。。ほぼ、な~んにもできないですよ!社畜は。。。
MariaDB入れたりしてみたけど、どうやってもスコアが上がらないのでミドルウェアの入れ替えではもう性能が限界と。
終いには、夕方から予定が入っていたのでそちらへ。
いや〜いいビール飲ませていただきましたよ!w
この後ブログ書いて寝た〜(つ∀-)オヤスミー
5日目(最終日) 火曜日・・・
最終日ですね!(^^)ぜんぜーん、パフォーマンスがチューニング出来てませんエン!
とりあえず、チームメイトが2日目に設定してくれたパラメータを設定。。。
まあまあかな?っと。
で、気がついたら、終了時間になっておりました!
第二陣おつかれさまでした!競技終了です。 #サバフェス
— サバフェス! (@svfes) 2015, 3月 17
と、いうことでお疲れ様でした〜!
まだ、土日に「第一陣」の方の延長戦があるそうなので、手札は書かないようにしておきまーす!
早くも表彰式のスケジュールが公開されていますよ!