2015年3月14日土曜日

【更新終了】「ioDriveを焼き切れ!」、サバフェス!こと「Cloud Server Festa 2015 Spring」に参加しています!


なのまるっす!

今年も通称サバフェス!こと「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 が提供されているので、それを入れる!
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
詳しくは本家のドキュメント


  • Percona Server
repo情報を入れてあげれば、
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日目に設定してくれたパラメータを設定。。。

まあまあかな?っと。
で、気がついたら、終了時間になっておりました!




と、いうことでお疲れ様でした〜!

まだ、土日に「第一陣」の方の延長戦があるそうなので、手札は書かないようにしておきまーす!


早くも表彰式のスケジュールが公開されていますよ!


共有