「さくらのクラウド」では、本日(2012年11月1日)より新ディスクプランとして「SSDプラン」を追加いたしました。ディスク容量は100GBで、月額料金3,675円、日割料金は184円となります。
これまで「さくらのクラウド」では、ハードディスクを利用したディスクプランを提供してまいりましたが、データベース用途などより高速なディスクのご要望を多数いただいておりました。この度、ご要望にお応えし、SSDを利用したディスクプランの開発を行い、本日より提供を開始いたしました。
■従来のディスクプランと「SSDプラン」の性能比較
従来のディスクプランと新たに提供を開始する「SSDプラン」の比較結果となります。
※ランダムリードパフォーマンス測定条件 ・・・IOサイズ 4KB、アクセス範囲 100GB、IO多重度 32
※ランダムリードアクセスレイテンシ測定条件・・・IOサイズ 4KB、アクセス範囲 100GB、IO多重度 1
■tpcc-mysqlによる「SSDプラン」のベンチマーク
TPC-CのMySQL向けの簡易実装であるtpcc-mysqlを利用したベンチマーク結果です。
以下のグラフは「さくらのクラウド」の「サーバプラン3 ディスク(標準)」「サーバプラン3 ディスク(SSD)」「サーバプラン7 ディスク(SSD)」を比較したものです。
※TPC-Cとはデータベースのベンチマーク仕様の一つです。卸売業における 注文・支払いなどの処理を擬似的に再現した業務モデルで、TPCという業界 団体によって策定されています。9種類のテーブルに対する5種類のトラン ザクションがミックスされており、そのうち注文処理のスループットがスコアとなります。
[ベンチマーク取得条件]
・OS : CentOS 6.3 64bit
・サーバスペック : プラン3(CPU仮想2コア、メモリ4GB)
: プラン7(CPU仮想4コア、メモリ16GB)
・RDBMS : MySQL Community Server 5.5.28 (Unix ソケット接続)
・負荷試験ツール:tpcc-mysql 2012-09-21 (500 warehouse)
・MySQLパラメータ:
[mysqld]
innodb_buffer_pool_size=(プラン3 の場合 2G プラン 7 の場合 12GB)
innodb_flush_method=O_DIRECT
innodb_log_file_size=(プラン3 の場合 256M プラン 7 の場合 512M)
max_connections=1000
table_open_cache=8192
max_prepared_stmt_count=32764
[ベンチマーク結果の補足]
サーバは同じプラン3でディスクの標準プランとSSDプランと比較した場合、標準プランと比較して、SSDプランの方が高いスコアが出ています。次に、同じSSDプランでサーバをプラン3からプラン7に変更した場合、さらにスコアが延びていることが確認できます。これら結果からも、データベースのご利用をご検討されるお客様は「SSDプラン」でサーバを作成しておき、データベースサイズやトラフィックの増加に応じてサーバのプラン変更をしていただくことをおすすめいたします。
これらのベンチマークは、MySQLにデータが十分キャッシュされるのを待った上で計測を行いましたが、キャッシュが十分たまるまでの時間も標準プランと比較して、「SSDプラン」の方が圧倒的に高速です。プラン変更などで、サーバ再起動をした時のパフォーマンス低下につきましても、「SSDプラン」では標準プランと比較してパフォーマンス低下が少なかった事も確認できております。
■「SSDプラン」のご利用方法
○サーバ作成時に「SSDプラン」を接続する場合
新しくサーバを作成する場合は、サーバ作成時に「ディスク」の項目から「作成」を選び「ディスクプラン」の項目で「SSDプラン」を選択してください。
ディスクのソースを選択する場合は、既に100GB用のディスクやアーカイブを用意している方はそちらをご選択ください。もし、100GBのディスクやアーカイブを用意していない場合は「ソース」に「空」を選択していただき、ISOイメージからOSをインストールすることも可能です。
○既にあるサーバにSSDプランを接続する場合
ディスク作成時の「ディスクプラン」の項目で「SSDプラン」を選択し、ソースに「空」、サイズは「100GB」を選択し名前などの必要項目を入力した後、「作成」ボタンをクリックしてください。その後、作成したディスクを作成したサーバに接続します。
「SSDプラン」を接続した後に、それぞれのOSで増設した「SSDプラン」をマウントする必要があります。マウント方法は、サーバのOSによって異なりますが、ここではCentOSでの方法を説明いたします。
(1) ブロックデバイスの確認
まず最初に接続したディスクのブロックデバイスの確認を行います。
# cat /proc/partitions
IDEデバイスは番号が若い順番に sda, sdb, … とvirtioデバイスは、番号が若い順番にvda,vdbと割り当てられますので、コントロールパネルのディスク接続情報と /proc/partitions 内容を元にデバイス名の特定を行います。以後の説明では、/dev/vdbであると仮定して進めさせていただきます。また、念のため特定したディスクがマウント中でないか、mount コマンドで確認しておくことをおすすめいたします。
(2) デバイスの利用方法の検討
新しく接続したディスクそのまま利用するのか、LVMの物理ボリュームとして利用するのかの検討を行います。
(a) ブロックデバイスをそのまま利用する場合
単一の用途で利用する場合はディスクに対してそのままファイルシステムの作成を行います。
(b) LVM の PV として利用するケース
ディスクを複数に分割して利用したい場合やスナップショットを作成したい場合は次の操作を行ってください。
! 物理ボリュームを作成
# pvcreate /dev/sdb
! ボリュームグループ ssd を作成
# vgcreate ssd /dev/sdb
! ボリュームグループ ssd に論理ボリューム lv0 を作成
# lvcreate -n lv0 -L 50G ssd
こちらの手順で /dev/ssd/lv0 として、50G の論理ボリュームが作成できました。
必要に応じて、lvcreate を繰り返して追加で論理ボリュームの作成を行います。また、スナップショットを取るためにはボリュームグループに空きがある必要があります。
(3) ファイルシステムの作成
ext4 ファイルシステムの作成と定期 fsck の無効化を行います。
# mkfs.ext4 /dev/vdb
# tune2fs -c -1 -i 0 /dev/vdb
※ /dev/vdb は LVM の場合は /dev/ssd/lv0 などになります。
(4) ファイルシステムのマウント
まずは、マウントポイントを作成します。
# mkdir -p /path/to/mountpoint
blkid コマンドを利用して、(3) で作成したファイルシステムの UUIDを調査
します。
# blkid
/dev/vda1: UUID=”633d4b1e-2ff4-4d55-aeb5-0cc89158502b” TYPE=”ext4″
/dev/vda2: UUID=”671d7808-7127-487d-bde7-b8df43b5fbed” TYPE=”swap”
/dev/vda3: UUID=”ba212c80-9d7c-408e-90db-cbd0cee6e021″ TYPE=”ext4″
/dev/vdb: UUID=”23033462-6d7b-4128-826e-20a1a268bd3e” TYPE=”ext4″
fstab にデバイスとマウントポイントを記入します。
# vi /etc/fstab
UUID=23033462-6d7b-4128-826e-20a1a268bd3e /path/to/mountpoint ext4 defaults 1 1
※ /dev/vdb はディスクの追加削除で名前が変化する可能性があるため、UUIDでの記載をおすすめします。LVM の場合は、/dev/ssd/lv0 のままでも問題ありません。
mount コマンドでマウントを行います。
# mount /path/to/mountpoint