前提条件:
- 三台及以上の NAS
- 各 NAS には 2 つのネットワークポートがあります
- 各 NAS の物理ディスクのサイズは同じです
- NAS の BIOS は電源が入ると自動的に起動します
- NAS のシステムディスクは SSD または NVMe で、データディスクは HDD です。または、システムディスクとデータディスクを区別できる場合は、ハイアベイテスト時に間違って抜かないようにしてください
以下は、簡単な家庭ネットワーク図です
光モデムと 3 つの NAS のネットワークポート 1 は、ギガビットスイッチを介して接続されています
3 つの NAS のネットワークポート 2 は、2.5G スイッチを使用して内部ネットワークを構成します
各 NAS の proxmox には、個別の vmbr0 と vmbr1 が設定されていることを確認してください
各ノードにバインドされたネットワークポートも同じであることを確認してください
vmbr0 は仮想マシンと共有されているため、LAN です
vmbr1 は WAN で、光モデムに接続されています
各 NAS の LAN IP が同じネットワークセグメントに設定されていることを確認してください
クラスタを構成します
クラスタを構成したら、ノードの 1 つに ikuai 仮想マシンを作成します
LAN と WAN を追加し、LAN は上記にあります(つまり、vmbr0)
仮想マシンのディスクサイズは 8GB 程度で十分であり、どの NAS にでも適当に配置できます
ikuai をインストールし、インストールが完了したら、LAN のネットワークセグメントを NAS と同じに設定し、ダイヤルアップを行い、ダイヤルアップの設定が完了すると、3 つの NAS にすべてネットワークがあるはずです。それぞれの NAS でシステムを更新してから、再起動してください。
上記は、ceph をインストールするためにネットワークが必要であることを確認するためのものです
クラスタを構成した後、データセンターの ceph をステップバイステップでインストールします。最適な設定は次のとおりです
osd_pool_default_min_size = 2
osd_pool_default_size = 2
管理者とモニターの 3 つのノードに追加します
各ノードに大容量のハードディスクをインストールした後、まず初期化してください
osd として追加します
ceph_fs を作成します
データセンターのストレージに RBD を作成します
さらに重要な注意点として、ceph ストレージは各ノードの時刻を定期的に同期する必要があります。時計のずれを防ぐために、各ノードで systemd-timesyncd をインストールしてください
各ノードにログインして、crontab -e を実行します
*/10 * * * * /usr/sbin/ntpdate ntp.aliyun.com
10 分ごとに時刻を同期します
さて、次は楽しい超統合のプレイができます
たとえば、先ほど作成した ikuai のダイヤルアップ仮想マシンのディスクをローカルから分散ストレージ ceph に移動し、移動が完了したらソースを削除して再起動します
NAS のモデルとネットワークポートが同じであるため、驚くべき効果を得ることができます。私の ikuai のダイヤルアップ仮想マシンは、物理ノードの切り替えを秒単位で行うことができます(他の仮想マシンも可能ですが、メモリ中のデータの移行が主な目的です。ストレージは分散ストレージ ceph にあるため、移行は必要ありません。テンプレート方式の lxc は移行後に再起動が必要です)。ホットマイグレーションなしでネットワークを切り替えることができると言えます
高可用性(HA)の設定
次に、簡単な設定を行うだけで、自由に試すことができます。たとえば、仮想マシンを作成する(仮想マシンのディスクとデータディスクを ceph rbd に配置)、SMB 共有を作成するなど
高可用性のテスト:
ランダムに 1 つのデータディスクを抜き取ると、SMB 共有には何の異常もなく、仮想マシンの実行にも何の問題もなく、SMB を介してデータを正常に読み書きすることができることに気付くでしょう。ceph タブには、1 つの OSD がオフラインであることを示す警告が表示されますが、しばらくするとデータの書き込みが完了し、データディスクを再挿入します。しばらくすると、OSD の状態が利用可能になり、書き込まれたデータが自動的にバランスされます
究極のテスト:
ランダムに 1 台の NAS をシャットダウンして、1 台が故障した状態をシミュレートします
HA が設定されており、シャットダウンされたノードに仮想マシンまたは LXC が存在する場合、一時的なリトライの後、自動的に生き残ったノードに移動して起動されます。SMB 共有も正常に動作し、読み取りと書き込みができます。しばらくすると、シャットダウンされた NAS を再起動すると、ceph も自動的にバランスを開始します
もちろん、3 台の NAS がすべて故障した場合や、2 台が同時に故障した場合など、より極端な状況は考慮していません
それには、より高度な地理的冗長性が必要です
家庭環境では、NAS が重要なデータ(コード、家族の写真、ブログ記事、キーなど)の保存に使用される場合、単一のマシンに依存するハードウェア RAID またはソフトウェア RAID はある程度のリスクがあります。成功裏に再構築できたとしても、現在の 10TB 以上の一般的なメカニカルハードディスクでは、再構築にかかる時間が非常に長くなる可能性があります。その間、ストレージサービスは完全に利用できなくなり、再構築の成功も心配する必要があります。このような状況は明らかに受け入れられません。
したがって、Ceph などの分散ストレージシステムは、家庭市場で大きな潜在能力を持っています。メーカーが複数のノードのソリューションを試すことを期待しています。複数のノードのソリューションを採用することで、より大きなスケーラビリティを提供することができます。単一のノードのディスクスロットは限られているためです。
最も極端なユーザーであっても、家庭環境では完全に RAID に依存すべきではありません。RAID は冗長性のあるメカニズムであり、バックアップではありません。企業レベルのソリューションは、分散ストレージを採用し、たとえ 3 つのノードだけであっても、分散システムの一部として構成できます。