トップ  >  趣味の部屋  >  Linux/仮想化  >  自作PC、家庭内ネットワーク(旧8:2013/1)
仮想化 linux vmware centos

目的 anchor.png

  1.  AMDから最新の22nmのIntel Ivy Bridgeに移行して省エネを加速しつつ適度なCPUパワーを得たい。 目標は、現状125W --> 目標85W (目標は 40W削減 だけど結果は未達成)
    1. フロントパネル。マシン単体ではワットチェッカーの読みで85W程度。
      t_052d47ad43cf3d2734dc4ad97ed3978e09.jpg
    2. アイドル時(公開サーバー稼働中)、マシン本体+光モデムルーター+Gbハブなど補機入れてUPSの出力で95W。(移行前から30W削減)
  2. PCIパススルーを活用したい。
    注意:ESXi5.1では、USBコントローラのパススルーが設定できない不具合があります。 USBコントローラをPICパススルーする場合は、ESXi5.0に最新パッチを当てて使用します。
    1. Windowsクライアントを安定稼働させたい。
      • Musicサーバーのプチプチ途切れ音、ブルースクリーンを減らしたい。
      • 家族用ゼロクライアントマシンが時々ブルースクリーンになるのを無くしたい。
    2. NAS用ディスクを、PCIパススルーしたSATAコントローラ配下でマウントして使うことで、RAWディスクとして使用可能としたい。
      • 今までのようにESXi管理下のVMFSフォーマットでは、いざというときの使い回しやバックアップ復旧などで制約が増えるので使い辛かった。
         RAWマウントによりディスク状態もマウントするOSから直接モニタできるので管理が圧倒的に楽になる。
      • ESXi管理下のVMFSフォーマットでは、ディスクが解列すると即停止か再起動時に設定変更が必要なので、Linux RAIDは現実的ではなく、純ハードウエアRAIDか前回構成のようにeSATA外付けRAIDケースなどを使用するしかなかったが、RAWディスクになることで問題なくLinux RAIDが使える。
    3. PCIパススルーの設定現状
       3スロットあるPCIバスは、パススルーの設定は一括となり、1枚ごとの設定は出来ない。 PCIeバスは個別に設定可能。
      PCI_Pass.jpg
各スロットの構成。パススルーゲスト列が空欄のものはPASSスルーしないの意味。
スロットデバイス名パススルーゲスト
00:02:0オンボードVGA
00:1a:0オンボードUSB-1
00:1d:0オンボードUSB-2
00:1f:2オンボード
(Intel)Panther Point AHCI
SATACentOS 6.3
00:1:0
00:01:0
PCIe X2
(Intel)82574L
GbLANWindowsXP
00:1c:0
02:00:0
PCIe X2
(MARVEL)88SE9230
SATA
00:1c:4
03:00:0
オンボード
(Realtek)R8168
GbLAN
00:1c:5
05:00:0~2
PCI
(NEC)USB/USB2.0
(玄人志向)USB2.0N6P-PCI
USB2WindowsXP
00:1c:6
06:00:0
PCIe X1
(玄人志向)USB3.0RD-PCIe
USB3
00:1c:7
07:00:0
PCIe X2
(Intel)82574L
GbLAN

仮想マシン構成 anchor.png

以下の6つのゲストマシンを常時稼働中。

  • NAS/iSCSIターゲット/REGZA録画用: CentOS6.3 (2vCPU)
  • 公開WEBサーバー: Scientific Linux 6.3 (1vCPU) KUSANGI (CantOS7.4):2017/11
    • 従来は2vCPU割り当てていたけれども、今回は1vCPUで試してみたら全く不足なし。
  • メールサーバー、DNS: CentOS5.8 (2vCPU)
    • これも2vCPU割り当てていたけれども、1vCPUで全く不足なし。
  • ソフトルーター: vyatta (1vCPU)
  • Musicサーバー: WindowsXP (2vCPU)
  • 家族用ゼロクライアント: WindowsXP (2vCPU)
    system.jpg

テスト用マザーボードとCPU anchor.png

 ESXiなどの仮想化マシンでPCIパススルーを行うには、M/BとCPUの両方が IOMMU(VT-d/AMD-Vi) に対応している必要がある。

  • マザーボード:(AsRock)ZH77 pro3
  • CPU:(Intel)Core i5 3470S
  • SATAボード:(High Point) Rocket 640L [SATA6Gb/s/RAID]
  1. CPU
    Intelでは、今年出たIvy BridgeのCorei5系CPUにVT-d対応品が多く展開されているので、その中から省エネ・パワーバランスの良さそうな Core i5 3470S BOX を選定。
    • Ivy BridgeでもVT-d非対応のものもあるので要注意!
    • Hyper Threadingは非対応だが問題なし。

      t_024b765fee98cfa364138586407f781d3a.jpgt_03a723122656d29286088bfec9521c2ee0.jpg
  2. マザーボード
     安価なH77チップセット系から選定。 「7」系のIntelチップセットで、VT-dの正式サポートを謳っているのはQ77くらいしか無いのだが、 H77やZ77でもサポートは無いものの一応使えるようになっている。 
     メーカーにもよるが、大体のM/BではBIOS/UEFIの設定の中に「VT-d」の有効/無効があるので、これを有効にすることで使えるようになる。
     まずはテスト用なので、安価な(AsRock)ZH77 pro3 を選んでみた。 PCIパススルーするには拡張スロット数が少ないのだがテスト用・予備用としてはOK。
  3. SATAボード
     M/B上のSATAコントローラをパススルーすると、ESXi起動直後のデータストアが何も無くなってしまうので、既存SSDを繋げるためのSATAポート用として(High Point) Rocket 640Lを使用。
     この時、AoyamaさんのESXi5.1のIDマップを作成してみる(Marvell 88SE9123/88SE9230編) の適用が必要です。 ;-)
     --> 結果的には、4ポートのうち2ポートしか認識しない。BIOS上では認識しているのだが、ESXiの認識が2ポート限定。パススルーしても同様。

本稼働用マザーボードとハードディスク anchor.png

  1. マザーボード:(ASUS)H77V-LE
    • PCIe X4スロットが1本ある。
       --> Rocket 640L もフルで4ポート使える?
       --> 結果、このM/Bでも2ポートしか認識しない。H77チップセットとESXiの相性かなあ。。 :roll:
    • PCIe X1スロットが2本ある。
    • 内蔵NICはAsRockのM/Bと同様に(Realtec)8111なのでESXi5がデフォで認識する。
  2. HDD:(Western Digital)NAS用REDシリーズ WD30EFRX x2台
    少し高くてSOHO・自宅用としてはオーバースペックな気もするけど、常時稼働だから良い物のほうが結局長く使えてお得! だといいんだがどうなるかな。
    t_004b7fab163b9b9c2f09d2bd07b2f6a07a.jpg
  3. ディスクドライブの構成のパーティション
  • SSD == VMDKフォーマット、ESXi用ストレージとし各ゲストマシンのシステム領域として使用。
  • HDDはパススルーしたRAW DISK をメインゲストマシンのCentOS6.3にて、mdadm(Linux Raid-1)、LVMで管理。
    • sda,sdb: (WD) WD30EFRX (3TB) == データ領域。
      • LVMの先頭ボリウム [vm0-lv0] はiSCSIターゲット領域としてESXiからマウント
      • 以降のボリウム [vm1-lv1] はNAS用としてext4でマウントし、sambaでLANに公開。
    • sdc,sdd: (WD) WD25EZRX (2.5TB) == データ領域のRAID-1スペアディスクに割り当てて、残りをREGZA録画用にext4でマウントし、sambaでLANに公開。
    • RAW DISKのパーティション・ボリウム構成は以下のようにして、スペアディスクを確保しつつREGZA録画用ボリウムもRAID-1(スペア無し)にまとめた。
      領域ボリウムsdasdbsdcsdd
      1vg0-lv0
      iSCSI
      target用
      md0md0md0(s)md3(s)
      2vg1-lv1

      DATA用
      md1md1md1(s)md2(s)
      3md2md2md5md5
      4md3md3md6md6
      5md4md4--
      (s)はRaid-1スペアディスク
  • mdadmでRAIDを構成する際の注意点
     仮想化の話ではなくてLinux RAIDの話になるが、今回ESXiでパススルーしたディスクが、ゲストマシン起動の度にSSDから切り出したVMFSの起動ディスクとの順番が先頭(sda)になったり最後になったり(sdb)する。
     そのままだとRAIDの構成がおかしくなってしまうので、以下のような手順でRAID構成を保存しておくと良い。
    • /etc/mdadm.conf を編集
      # vi /etc/mdadm.conf
      Everything is expanded.Everything is shortened.
       
      
      DEVICE partitions
      続いて、以下のコマンドで表示される内容を、そのまま/etc/mdadm.confに追記する。
      # mdadm -D --scan
      /etc/mdadm.confは以下のようになった。
      Everything is expanded.Everything is shortened.
       
       
       
       
       
       
       
       
       
      
      DEVICE partitions
       
      ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=6f66ab25:24fd7989:ea21c109:2ab9f1a1
      ARRAY /dev/md1 metadata=1.2 spares=1 name=localhost.localdomain:1 UUID=79af2472:1d50889a:58c109ec:afbc226e
      ARRAY /dev/md2 metadata=1.2 spares=1 name=localhost.localdomain:2 UUID=395d8c9d:7b93f1cb:66588da3:36f7579e
      ARRAY /dev/md3 metadata=1.2 spares=1 name=localhost.localdomain:3 UUID=1edf07a8:5908ee21:b45a08f6:40a3b449
      ARRAY /dev/md4 metadata=1.2 name=localhost.localdomain:4 UUID=c7b2e3fa:11e7cda9:d6b71a77:e2607793
      ARRAY /dev/md5 metadata=1.2 name=localhost.localdomain:5 UUID=8d9165db:af7999a6:dd3634dc:fed73f96
      ARRAY /dev/md6 metadata=1.2 name=localhost.localdomain:6 UUID=e29c0f5b:52d09630:2f2edae8:d30a18f3
    • mdadm(Linux RAID) ではなくて、Fake RAIDと呼ばれるオンボードのRAIDを使って、Linux上でdmraidドライバを使うことで、多少軽量にRAID-1を構築できるし実験済みだけど、スペアディスク構成などのフレキシビリティや、障害発生時の対処方法の分かり易さなどを総合的に判断して、オーソドックスに Linux RAIDに戻ってきた。
       一度解列されると再構築に時間がかかるのだが、そのぶん普段は意外にCPU負荷が少ない。 この辺はZFSファイルシステムとは正反対とも言えそう。
    • メインのゲストマシンにFreeNAS/NAS4FreeでZFSファイルシステムを使うのも有だが、後でボリウムを拡張/縮小/物理ディスク移動など色々なフレキシビリティの良さを考えると、LVMと組み合わせて使えるLinuxがやはり良い。
  • Crystal Disc Mark のベンチ
    キャッシュが十分に効いている状況でのテストです。 これだけ速いと、メインゲストのCentOSのCPU負荷もかなり上がり、ESXiマシン全体でCPU使用率60%を超えます。
    DiskMark.jpg

USB3.0コントローラーのパススルーテスト anchor.png

テスト的に、(玄人指向)USB3.0RD-PCIe、Ubuntu12.04でUSB3.0で接続できた! 同物理マシン上のCentOS6からNFSマウントして、100MB/s出ている。但しなぜか読み込みはエラーで使えず。

t_018af304ba2a6092bd462158a9d9d2da41.jpg
  1. 使用機器
    HDDケース
    • (NOVAC) 2SATA HDDはい~るKIT RAID Data Saver NV-HS222U3S
    • USB3.0 と eSATA のどちらか片方の接続が可能
    • RAID使用可能と思うが、今回は単独ディスクとして確認

      コントローラ/ゲストOSCentOS 6.3ubuntu 12.04
      M/B内蔵H77(Intel)コントローラ
      ESXi usbパススルー
      ×(2.0)×(2.0)
      M/B内蔵H77(Intel)コントローラ
      PCIパススルー
      ×(2.0)×(2.0)
      (玄人志向)USB3.0RD-PCIe
      PCIパススルー
      ×(2.0)
  2. 但し、USB3.0接続できた組み合わせでも、HDDを2台入れた状態でも1台しか認識しない。 eSATAのマルチポートプライヤみたいには行かない。
  3. 書き込み速度は、100MB/s程度出る。 但し、読み込みはUSB3.0だとエラー頻発で使い物にならない。USB2.0機器だとOK。
  4. 他のOS
    • Windows XP sp3では、(玄人志向)USB3.0RD-PCIeをパススルーしても、ルネサス製デバイスドライバーの最新版を(3.23)入れても認識しなかった。
    • Windows 7 ではディスクの認識はOK、USB2.0だと読み書きOKだけど3.0だとだめ。

NICパススルーはゲストマシンに負荷がかかる? anchor.png

(INTEL)PRO/1000 GT DESKTOP ADAPTOR(PCI) をパススルーして、WindowsXPゲストマシンで使ってみると、大したことをしていないのに何やら負荷が急上昇。

t_073bb2f15f4e9c031fa47dcf5d814e91ac.jpg
    • パススルーではなくてESXi経由で普通に使う分には大丈夫なんだけど・・
    • 最近のPCIスロットはネイティブPCIではなくて、PCIe/PCI変換を行っているらしいから、そのせいかもしれない。
    • 最終的には、PCIeに別のNICを追加して、そちらをパススルーして対応。 そちらは変な負荷上昇もなく問題無く稼働中。

ハード構成まとめ anchor.png

PARTS型式・仕様
CASE(ANTEC) P-150(430W高効率電源付)
M/B(ASUS)P8H77-V LE
SocketLGA1155
Chipset(Intel)H77
SerialHDDコントローラ、ギガLANデバイスとも ESXiできちんと認識。
CPU(Intel)Core i5 3470S BOX (TDP65W)
Memory(Team) TED316G1600C11DC [DDR3 PC3-12800 8GB 2枚組]
(CFD-Elixir)W3U1333Q-4G DDR3 (DDR3 PC3-10600)4GB 2枚組 計24GB
HDD(Intel) 510 Series SSDSC2MH120A2K5
(Western Digital) WD30EFRX [3TB SATA600] x2 NAS/DATA用
(Western Digital) WD25EZRX [2.5TB SATA600] x 2 REGZA用・NASディスクのRAID-1スペア用
LAN CARD(iSCSI用)
(パススルー用)
(INTEL) Gigabit CT Desktop Adapter x2
USB FLASH適当な2GBのもの。ESXiのUSBブートに使用
USB CARDUSB3.0(玄人志向) USB3.0RD-PCIe
USB2.0(玄人志向) USB2.0N6P-PCI
USB
SOUND DEVICE
(JAVS) X-DDC (Black)

総括 anchor.png

  • 今回のCPUは確かに省電力ではあるけど、CPUパワーはそれほどでも無かった印象。 PCIパススルーするとゲストマシンのCPUパワー消費が増えるのでそのせいもあるかも。
  • PCIパススルー自体は可能な拡張ボードでも、パスした結果ゲストOSがどう扱えるのかは、個別に異なる。 期待通りに使える場合も、使えない場合もあるので、人柱のリスクがあるからあまり高価なボードを買う気にならない。
  • Musicサーバー用に当初はオンボードのUSBコントローラ-2をパススルーしてみたが、USB2.0のボードを追加購入してそちらをパススルーすることで安定運用している。
    • しかし、このマザーのH77チップセットだとPCIボードは一括でパススルー設定になるので少々使い辛い。PCIeと同様に個別設定可能だとよかったが。
  • 家族用ゼロクライアント用にPCIのGbLANをパススルーするとCPU負荷が尋常でないほど増えてしまうので、結局VM Network経由とした。今のところ安定的に使えているけど、ちょっと残念。 まあ、PCIeスロットが一つでも多いマザーボードを使ってそちらのNICをパススルーすれば済む話かもしれない。

  :-D ということで、当初の目的に照らすと微妙に未達成な面もあるのだが、移行自体は終わったので一区切り付いたと思う。

プリンタ用画面
投票数:107 平均点:5.14
カテゴリートップ
Linux/仮想化
次
自作PC、家庭内ネットワーク(旧7:2012/12)

コメント一覧

投稿ツリー


なーお  投稿日時 2015/4/18 15:55 | 最終変更

気づけば構築から2年以上経過している。
こんな特殊な使い方だけど、結構安定した運用ができている。 以前の構成で頻発した、RAID1の解列もほとんど起こらなくなった。 WD-REDの信頼性は健在です。 もちろん、ESXiの出来も。。 もう機能アップできないけど。

とはいえ、ひとたび故障すれば WEBサーバーも家族用クライアントも一蓮托生で一斉にダウンして、リモート接続さえできなくなってしまうのだが・・

単身赴任先から安心してアクセスできるリモート接続だけでも作っておく必要があるかもしれないな。

なーお  投稿日時 2017/12/10 12:32 | 最終変更

もう構築から5年近く経った。
極めて安定してるので、更新するリスクを負いたくない。

今回、WEBサーバー上のアクティブサイトを、Apacheからnginx(KUSANAGI)に移行し、速度も大きく向上。

まだまだ現役の優秀サーバーです。

なーお  投稿日時 2019/12/29 14:28 | 最終変更

 その後、この仮想サーバー環境はクラッシュしたため、シュリンク環境に移行しました。

 RaspberryPi3B と、Rock64-4GBでWEBサーバーとメールサーバーを稼働させ、Rasbian・Debian上のWEBサーバーはapacheからnginxに移行しました。 ご覧のとおりそれほど速くないし、時々落ちたりしますが、どうにかこうにか動いています。

 ファイルサーバーはRock64-1GBに、USB3のHDD2本お立ち台で、Linuxのsoftware-Raidでミラーリングしています。



新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

ブックマーク