iSCSI(SAN)への変更
iSCSI(SAN)への変更
変更前
変更前の特徴
NASを構築し、データバックアップを行う
- RYZEN 7 3700X & X570 & 332GB RAM & GeForce 1050TiのPCに、TrueNAS Communityを入れ、SMBサービスを使ってファイル共有を行い、SMB3のマルチチャネルで2Gbpsの通信速度を確保。
- ROBOCOPYコマンドでオプションに/mirを指定しMainPCのデータを正として、TrueNASのバックアップを副として運用。
- ROBOSOPYのオプションの/MT:4を使い2GBpsの帯域を使い切るように調整。
- HDDによるRAID1構成のため、初期の書き込みではHDDの速度が上限となるが、2度目以降はNVMe SSDをストレージプールに追加しL2ARCによる高速化を図っている。
変更前のネットワーク構成図
graph TD
subgraph "Switch"
NIC_SW[1GbE]
end
subgraph "Main PC (Ryzen 9 9950X3D / Radeon RX9070XT)"
OS_MainPC[Windows 11 Pro]
NIC_MainPC_1[5GbE (SMB MulchiChannel)]
NIC_MainPC_2[1GbE (SMB MulchiChannel)]
OS_MainPC <--> NIC_MainPC_1
OS_MainPC <--> NIC_MainPC_2
end
subgraph "TrueNAS Community (Ryzen 7 3700X)"
OS_TrueNAS[TrueNAS Community / ZFS]
Storage1[HDD 4TBx2 / NVMe / RAID1]
Storage2[HDD 3TBx2 / NVMe / RAID1]
DataSet1[DataSet]
DataSet2[DataSet]
NIC_TrueNAS_1[2.5GbE (SMB MulchiChannel)]
NIC_TrueNAS_2[1bE (SMB MulchiChannel)]
OS_TrueNAS <--> Storage1 <--> DataSet1
OS_TrueNAS <--> Storage2 <--> DataSet2
OS_TrueNAS <--> NIC_TrueNAS_1
OS_TrueNAS <--> NIC_TrueNAS_2
end
NIC_SW <==> NIC_MainPC_2
NIC_SW <==> NIC_TrueNAS_2
NIC_SW <==> NIC_MainPC_1
NIC_SW <==> NIC_TrueNAS_1変更後
変更後の特徴
SANを構築し、データバックアップを行う
MainPCのオンボードの5GbEのRJ45ポートとTrueNASの増設した5GbEのRJ45のNICの速度を活かすため、Cat.6ケーブルを直結し、iSCSIによるSANを構築。
Layer7のSMBプロトコルからLayer4のSCSI on TCP/IPへ移行し、オーバーヘッドを削減。
フレームバッファを9000 (9014)バイトに設定。
この図だとオーバーヘッドが増えているように見えるが、SMBは認証、ファイル使用状況の確認などを挟み、パケットにヘッダーを追加している。
flowchart LR subgraph "App (Layer 7)" L72[App] L72 <--> I70[OS] end subgraph "SMB (Layer 7 <-> Layer4)" I70 <--> S73[SMB Header / Auth / Metadata] end subgraph "iSCSI (Layer 4 / Block)" I70 <--> I40[FS / Block] I40 <--> I41[iSCSI / SCSI Command] end subgraph "TCP/IP(Layer3)" S73 <--> S3[TCP] I41 <--> S3[TCP] S3 <--> S2[IP] end subgraph "Layer2" S2 <--> S1[Ethernet] endTrueNAS側のメモリキャッシュがいっぱいになるまでは4.9Gbpsの速度を確認した。
比較的大きなファイルの書き込みでは1.8Gbpsに貼り付くので、バイトに換算すると230MB/sはHDDの書き込み速度の上限だと思われる。
ファイルの更新チェックなどL2ARCが利くときは一瞬で終わる。
ROBOCOPYのMTオプションでのHDDへの書き込み速度は影響しないが、ネットワークの占有率と占有時間は変化する。
変更後のネットワーク構成図
graph TD
subgraph "Switch"
NIC_SW[1GbE]
end
subgraph "Main PC (Ryzen 9 9950X3D / Radeon RX9070XT)"
OS_MainPC[Windows 11 Pro]
NIC_MainPC_1[5GbE (iSCSI Link)]
NIC_MainPC_2[1GbE]
OS_MainPC <--> NIC_MainPC_1
OS_MainPC <--> NIC_MainPC_2
end
subgraph "TrueNAS Community (Ryzen 7 3700X)"
OS_TrueNAS[TrueNAS Community / ZFS]
Storage1[HDD 4TBx2 / NVMe / RAID1]
Storage2[HDD 3TBx2 / NVMe / RAID1]
DataSet1[ZVol]
DataSet2[ZVol]
NIC_TrueNAS_1[5GbE (iSCSI Link)]
NIC_TrueNAS_2[1bE]
OS_TrueNAS <--> Storage1 <--> DataSet1
OS_TrueNAS <--> Storage2 <--> DataSet2
OS_TrueNAS <--> NIC_TrueNAS_1
OS_TrueNAS <--> NIC_TrueNAS_2
end
NIC_SW <==> NIC_MainPC_2
NIC_SW <==> NIC_TrueNAS_2
NIC_MainPC_1 <==> NIC_TrueNAS_1変更予定
SSDの価格が下落してきたあかつきには、TrueNASをヘッドレスサーバーにしてNVMe SSD 4枚挿しをし、SANの高速化を図りたい。またそのときにはMainPCとTrueNASの間をSPF+とトランシーバーと光ファイバーを導入して10Gbps以上の速度向上を図りたい。
graph LR
subgraph "Main PC"
NIC_M[SFP+ NIC]
end
subgraph "Storage Trench"
Fiber((Optical Fiber))
Trans_M[Transceiver SR]
Trans_T[Transceiver SR]
end
subgraph "TrueNAS"
NIC_T[SFP+ NIC]
end
NIC_M <--> Trans_M <--> Fiber <--> Trans_T <--> NIC_T