SASディスク1台のみで実現する2ホスト共有ディスク(ハードウェア編)

今回は、自宅ラボで 「お手軽に共有ディスクを使ったクラスター環境の検証がしたい!」 という少々マニアック(というか変態的)な検証記録を残しておきす。

ことの始まりは、職場でWestern Digitalの超巨大なJBOD装置「Data60」を扱うミッションができたことでした。 この手の装置を売る際、単体だけでなく「サーバーもセットで冗長化して提案したい」というのがエンジニアの本音です。 BroadcomのRAIDカード(HBA)で繋げば動く実績はありますが、それではホスト側の冗長化ができません。 そこで、TrueNAS + RSF-1などの構成で「物理的なSAS共有ディスク」を使ったクラスターの検証をしたくなりました。 しかし、個人ラボでデュアルホスト対応のJBODエンクロージャを用意するのは、予算的にも騒音的にも不可能です。

そこで、ふと思いました。 「SASディスクって本来2系統のデータパス(Dual Port)を持ってるよな。これを物理的に分離して、2台のサーバーに直結すれば、実質ミニマムなJBODになるのでは?」 試しに、HDDをメーカーに部品として卸しているエンジニア(つまり中の方)に、「1台のSASディスクのデータレーンを物理的に分けて、2台のサーバーから同時アクセスできますか?」と聞いてみたところ、答えは「わからない」でした。 中の人がわからないなら、自分でやってみるしかありません。ケーブルをぶった切る治ぎ具の作成から始めた、検証記録です。

今回の検証のゴールとアプローチ

通常、マルチパスによる冗長化に使われるSASのDual Portですが、今回はこれを「異なる2台のホストへ同時に接続し、共有ディスクとして動作させる」ために使います。 もちろんそのままでは繋がらないので、1本のSASコネクタ延長ケーブルを切断し、SATAコネクタを取り付ける「データパス分離治具」を自作しました。 ソフトウェア側は、SCSI共有ディスクに対応し、動作検証が手軽な「Proxmox VE 9.1.1」を採用してクラスタを組むことで、SASディスクのデュアルホスト共有ができるか確認します。

準備した機材たち

【新規調達品】

  • HBA: LSI SAS9300-8E(PCIe接続)× 2枚 (将来のData60接続を見据えてCompatibility Matrix準拠のものをチョイス)
  • ケーブル: SFF-8644 ⇔ SATA×4 ファンアウトケーブル × 2式
  • SAS HDD: HPE EG0300FCSPH(300GB / 10k RPM)× 1台(検証用なので100GBあれば十分でしたが、手頃なものを)
  • 自作部材: SASコネクタ延長ケーブル & SATAコネクタ一式

【自宅ラボ内機材】

  • 検証用PC × 2台(AMD Phenom II / A8世代の渋いマシン。PCIe延長基板でHBAを外部増設)
  • 外部電源装置一式(HBAとHDDへの給電用)
  • その他、コンソールPCやネットワーク機材一式

構成要素

  • ホスト1台目
    • MotherBoard GA-990FXA-D1
    • CPU Phenom II x6 1055T
    • Memory 32GB
    • Storage SATA 128GB
    • HBA UCSC-SAS9300-8E
    • OS Proxmox 9.1.1
  • ホスト2台目
    • MotherBoard GA-F2A75M
    • CPU A8-5500
    • Memory 24GB
    • Storage SATA 128GB
    • HBA UCSC-SAS9300-8E
    • OS Proxmox 9.1.1
  • 検証ディスク

    • HPE EG0300FCSPH (SAS 300GB/10kRPM)

分岐ケーブルの制作

分岐ケーブルはAliexpressでSASの延長ケーブルを購入しました。セカンダリチャネル側のケーブルを切断し、新たにSATAコネクタを取り付けます。もう一つのチャネルはそのまま残し、SAS-SATA変換コネクタを使い、電源とプリマリチャネルとします。

(蛇足)切断して解ったこと。 あのケーブルって単線なんですね。そしてツイストもされていなかった