さくらのVPSの構成を妄想してみました。

この記事は「さくらのVPS 980」というプランで提供メモリが512MBだった頃の記事です。

収容数について

故障にもよるので明確にお答えしにくいのですが、数時間もかかることは極めて稀だと思います
RT @shibomb @kunihirotanaka さくらVPSを構成するマシンが1台故障した想定で、そこで動作してたVPS環境の復旧にはどれくら時間が掛かりますか?

http://twitter.com/kunihirotanaka/status/26713886183

物理サーバを分けないと物理サーバ停止したらサービス継続できないよね・・・と、言うところから調査がはじまったのですが
ものすご〜く丁寧に調べてるサイトがありました。

ネットワーク空間の項目を見ると以下の事がわります。

  1. ネットワークは/23毎に区切られている。※以下xx.xx.(偶数).xxを前半、xx.xx.(奇数).xxが後半と書いています。
  2. 現在1〜10のセット(/23が10組)が存在する。 ※以下セット番号を[1-10]と書いてます。
  3. 以下のIPは逆引きがありません。
    1. 前半の0-2,4-10,255
    2. 後半の0-10,227-255
  4. 前半の3はbackup[1-10]v.sakura.ne.jpという逆引きが設定されている
  5. 前半の11-28はwww[1-10]XXv.sakura.ne.jpという逆引きが設定されている(XX=01-18) ←おそらくこれがホスト
  6. 前半29-38は逆引きがない
  7. 前半39-254にwww[1-10]XXu.sakura.ne.jpという逆引きがついてる(XX=01-216)
  8. 後半11-226にwww[1-10]XXu.sakura.ne.jpという逆引きがついてる(XX=217-432)
  9. 仮想サーバはwww[1-10]XXu.sakura.ne.jpという逆引きが設定されている

以上から、1つのネットワークには

  • 18台の物理サーバ
  • 1台のバックアップサーバ
  • 432個の仮想サーバ

がある事がわかる。

ので18台のサーバを均等に分割すると最大で24仮想サーバ/台になります。

恐らく単純に24で割って収容してるんではないかと思いますが誰か検証方法わかる方がいたらお願いします。

IP 収容サーバ
xx.xx.(偶数).39-62 www[1-10]01.sakura.ne.jp
xx.xx.(偶数).63-86 www[1-10]02.sakura.ne.jp
xx.xx.(偶数).87-110 www[1-10]03.sakura.ne.jp
xx.xx.(偶数).111-134 www[1-10]04.sakura.ne.jp
xx.xx.(偶数).135-158 www[1-10]05.sakura.ne.jp
xx.xx.(偶数).159-182 www[1-10]06.sakura.ne.jp
xx.xx.(偶数).183-206 www[1-10]07.sakura.ne.jp
xx.xx.(偶数).207-230 www[1-10]08.sakura.ne.jp
xx.xx.(偶数).231-254 www[1-10]09.sakura.ne.jp
xx.xx.(奇数).11-34 www[1-10]10.sakura.ne.jp
xx.xx.(奇数).35-58 www[1-10]11.sakura.ne.jp
xx.xx.(奇数).59-82 www[1-10]12.sakura.ne.jp
xx.xx.(奇数).83-106 www[1-10]13.sakura.ne.jp
xx.xx.(奇数).107-130 www[1-10]14.sakura.ne.jp
xx.xx.(奇数).131-154 www[1-10]15.sakura.ne.jp
xx.xx.(奇数).155-178 www[1-10]16.sakura.ne.jp
xx.xx.(奇数).179-202 www[1-10]17.sakura.ne.jp
xx.xx.(奇数).203-226 www[1-10]18.sakura.ne.jp

サーバスペックの推測

http://research.sakura.ad.jp/2010/04/06/primergy-rx200-s5/
http://research.sakura.ad.jp/2010/04/16/primergy-rx200-s5-problem/

から、富士通primergy R200 S5を利用しているのではないか?との推測がされて居ますが
R200 S5は販売終了してるので後継機のR200 S6ではないでしょうか?
(または在庫処分のR200 S5を安く大量購入の可能性もありますが6coreのCPU使えるのかな?)

  • 「収容人数について」の通り、1物理サーバあたり24仮想サーバを仮定
  • R200 S5のBTO見積もりが販売終了の為、R200 S6のBTO見積もりで選択可能な構成

でサーバを考えみました。

  • CPU

1ゲストでホストCPUを占有しないようコア割当をしているので、2〜3ゲスト程度の暴走なら問題ありませんよ
RT @fkei @kunihirotanaka さくらのVPSで同一サーバー内の他のゲストがリソースを食い尽くした場合って、引っ張られて自分のゲストも重くなるんでしょうか?

http://twitter.com/kunihirotanaka/status/26513743652

厳密には1ゲスト1コアではありません。基本はCPU、ディスクIOともに共有です。ただ回線は1Gbps集約なのでまず溢れないと思います
RT @fkei なるほど1ゲスト1コアが前提なんですね。ディスクIOなど共用部分はどうなのでしょうか?

http://twitter.com/kunihirotanaka/status/26714049981

最近のCPUは1コア当たり2スレッドが並列で動くので4コアだと8スレッド、6コアだと12スレッドまで並列処理ができます。
R200 S5もS6もCPUソケットが二つあるので16スレッドまたは24スレッド並列処理ができます。

仮想サーバ内の1core(←便宜上仮想core)が物理サーバの1threadに対応すると

  • 4コアでは16スレッド/48仮想core
  • 6コアでは24スレッド/48仮想core

となります。
当然ホストの処理にもCPUが必要なのでさらに厳しい状態になります。
自信満々な発言から6コアを利用してるのではないでしょうか?

R200 S6で6coreのCPUは以下のいずれか

  • X5650 2.66GHz
  • X5660 2.80GHz
  • X5670 2.93GHz
  • L5640 2.26HHz (低電圧版)

VPSのcpuinfoをみると

model name : Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz

となっていますが

cpu MHz : 2660.226

あれ?もしかしてX5650 "2.66GHz"?

  • メモリ

上記CPUの推測が正しかったとすると、BTO上でX56xxシリーズを選ぶとメモリ3枚で1セットで以外で申し込みができなくなります。
2Gx12枚でスペアメモリを有効にすると16GBになります。

スペアメモリっていうのは使わないメモリを用意しといて壊れたら、使ってなかったメモリを利用する仕組みで
壊れたメモリは電源を付けたまま抜いて、壊れてないメモリと差し替える事ができるそうです。

24仮想マシンに各512MB割り当てると必要なメモリは12GBです。

さくらのVPSの場合,現物理メモリ量の7〜8割しかゲストOSに割り当てていません。
KVMでは空いているメモリ空間をディスクキャッシュとして利用するため,余裕があればそれだけディスクアクセスの高速化につながります

http://gihyo.jp/admin/serial/01/sakura-vps/0001

という発言から12GB / 16GB = 0.75で見事に一致しています。
(次点で2Gx9枚でスペアメモリ無効=18GB)

  • ハードディスクの話

外部ストレージ使ってたら計算のしようがないので使ってないものと仮定します。

ディスクはRAID10で、ルーターVRRPでの冗長化をしています

http://twitter.com//kunihirotanaka/status/22805482224

からRAID10なのは判っています。

BOT上でRAID10を選択するとだとSASSSDしか選択できなくなります。
また、ライトバックキャッシュを有効にしないとIOが遅くてやってられなくなるのでバッテリー付きのRAIDカードでを選択します。

20GB x 24仮想サーバで480GBは最低でも必要になります。

選択可能なHDDの中から73GBや146GBのディスクでRAID10を組むと6こ使っても438GBにしかならず
また、6本構成だと2つは内部になってしまい、ホットスワップができないディスクが発生します。

以上から、300GB 10000rpm x 4で実用量600GBではないかと推測できます。

  • その他

冗長化電源を付ける。
物理的に動く周辺機器はできるだけ減らしたほうが言いとされてるのでDVDは外す。

  • まとめると

上記の構成にすると多くのパーツは起動しっぱなしで交換可能になりますので
「数時間もかかることは極めて稀」なケースは冗長化できてないマザーかRAIDカードの故障かな?と考えています。

メモリにはunbufferdとregisterdというのがあり(後者のが値段は高いが安心機能がついてます)
メモリはregisteredを選択した場合、WEB上ではこの構成で1,418,000円となります。

収容数の話で1ネットワーク当たり物理サーバは18台、10セットあるというのがわかってますので
少なくても180台は購入してますし、これまでの取引実績もあるはずで
サーバって大量に買うと半額になったりするのは良くある話なので
1台当たりは50-70万くらいかな?と妄想してます。

  • registeredかunbufferedか?
  • スペアメモリ有効/無効?
  • 冗長電源を使ってるか?

あたりが微妙に違うかもしれませんが多分基本構成はいい線ついてると思いますがどうでしょうか?