Ethernet tanpa kehilangan data untuk penyimpanan: DCB, PFC, ECN
Ethernet membuang frame ketika mengalami kongesti; protokol penyimpanan yang dibangun untuk Fibre Channel atau RDMA mengasumsikan tidak ada yang pernah dibuang. Data Center Bridging (DCB) menutup celah ini dengan flow control per prioritas dan alokasi bandwidth, dan RoCE menambahkan sinyal kongesti di atasnya. Hasil akhirnya sama losslessnya dengan link yang paling buruk: sebuah optik marginal yang membuang satu frame dalam sejuta sudah menjadi insiden penyimpanan. Halaman ini menjelaskan mekanismenya dan menerjemahkannya ke dalam persyaratan lapisan fisik.
Perkakas DCB
| Standar | Nama | Fungsinya |
|---|---|---|
| IEEE 802.1Qbb | PFC — flow control berbasis prioritas | pause frame per kelas trafik (0–7): penerima yang mengalami kongesti menghentikan satu kelas tanpa menghentikan portnya |
| IEEE 802.1Qaz | ETS — seleksi transmisi yang disempurnakan | jatah bandwidth terjamin per kelas (misalnya 50 % penyimpanan, 50 % LAN) |
| IEEE 802.1Qaz | DCBX — pertukaran DCB | negosiasi berbasis LLDP untuk pengaturan PFC/ETS antara switch dan NIC |
| IEEE 802.1Qau | CN — notifikasi kongesti | jarang diterapkan |
| RFC 3168 + DCQCN | penandaan ECN + kontrol rate | switch menandai paket saat antrean menumpuk; NIC RoCE memperlambat flow sebelum PFC diperlukan |
Bagaimana RoCE tetap lossless
- Trafik penyimpanan/RDMA ditandai dengan prioritas khusus (sering 3 atau 4) lewat DSCP atau 802.1p.
- PFC diaktifkan hanya untuk prioritas itu pada setiap port di sepanjang jalur, dengan headroom buffer yang diukur sesuai kecepatan link dan panjang kabel (byte in-flight).
- Ambang ECN menandai paket lebih awal; NIC menjalankan DCQCN untuk menurunkan rate-nya, sehingga PFC baru aktif sebagai upaya terakhir.
- ETS menjamin bandwidth kelas penyimpanan di bawah beban LAN.
- DCBX menjaga pengaturan NIC dan switch tetap konsisten; ketidakcocokan diam-diam merusak sifat lossless-nya.
FC dan InfiniBand mencapai hal yang sama dengan credit di setiap link secara default; Ethernet perlu mengonfigurasi, memverifikasi, dan memantau ini secara khusus (Dasar protokol FC, Transport InfiniBand).
Apa yang bisa salah
| Masalah | Efek | Deteksi |
|---|---|---|
| PFC tidak diaktifkan pada satu hop / prioritas salah | drop di bawah beban; RDMA melakukan retransmit; lonjakan latensi | counter pause bernilai nol di tempat yang seharusnya tidak; drop pada kelas tersebut |
| PFC storm | penerima yang macet mem-pause upstream tanpa batas waktu; kongesti menyebar ke seluruh fabric | pause frame membanjir; counter watchdog |
| PFC deadlock | dependensi buffer siklis pada fabric Clos; semua trafik pada kelas tersebut berhenti | memerlukan deteksi deadlock / watchdog untuk memutusnya |
| Headroom terlalu kecil untuk kabel/optik yang panjang | drop meski PFC aktif | drop dengan counter pause tetap aktif |
| Ambang ECN salah | terlalu dini: kehilangan throughput; terlalu lambat: PFC membanjir | counter mark ECN, counter CNP pada NIC |
| Error fisik pada sebuah link (CRC, FEC uncorrectable) | frame hilang yang tidak dapat dipulihkan oleh flow control apa pun | counter error port, counter FEC — Metrik VDM & FEC |
iSCSI tanpa DCB
iSCSI berjalan di atas TCP dan tetap bertahan meski ada loss, tetapi membayarnya dengan latensi dan retransmission. Praktik terbaik terlepas dari DCB:
- dedicated VLAN/subnet per fabric, dua fabric, MPIO pada host;
- jumbo frame (MTU 9000) end to end;
- tanpa oversubscription antara initiator dan target; uplink 25G/100G diukur sesuai kebutuhan array;
- FEC aktif untuk setiap link 25G+; counter CRC pada nol;
- opsional PFC pada kelas iSCSI untuk meratakan micro-burst (banyak array merekomendasikannya).
Persyaratan lapisan fisik
| Persyaratan | Alasan | Praktik |
|---|---|---|
| FEC diaktifkan dan cocok pada setiap link 25G+ | RoCE tidak dapat mentoleransi BER mentah dari lane 25G/50G yang tidak terlindungi | FEC & link training |
| CRC dan FEC uncorrectable = 0 | setiap frame yang hilang membuat sebuah antrean macet | beri peringatan pada kenaikan berapa pun |
| Daya Rx berada dalam jendela dengan margin | optik marginal menghasilkan burst error di bawah pengaruh suhu | Daya Rx & link budget |
| Kecepatan/duplex/AN yang konsisten | DAC memerlukan AN + link training pada kedua ujung | Copper & DAC |
| Panjang kabel sesuai asumsi headroom | headroom dihitung dari byte in-flight | utamakan DAC di dalam rak, SR/AOC di dalam row, DR/LR antar ruangan |
| Identitas diterima oleh NIC dan switch | optik yang ditolak jatuh ke tanpa link atau kecepatan yang diturunkan | Penguncian vendor |
Checklist pemantauan
- Per port: pause frame terkirim/diterima per prioritas, mark ECN, drop per kelas, CRC, FEC corrected/uncorrectable, link flap.
- Per NIC: CNP terkirim/diterima, retransmission, out-of-sequence, timeout.
- Per optik: tren daya Rx/Tx dan suhu (Pemantauan).
- Korelasikan lonjakan tail-latency penyimpanan dengan hal-hal di atas — lapisan fisik lebih sering menjadi penyebabnya dibanding array.
Di CodingBox
Sebuah fabric lossless dibangun dari optik biasa yang sekadar dipegang pada standar yang lebih tinggi. Inspeksi masuk di meja kerja — identitas, checksum, DDM live dibandingkan dengan nilai tipikal, nilai acuan yang disimpan — adalah cara modul marginal dicegah masuk ke fabric tempat satu link yang buruk membuat sebuah aplikasi kehilangan SLA latensinya (Check transceiver, DDM).
Di mana posisi PFC dan ECN di antara mekanisme forwarding lainnya, dan bagaimana error lapisan fisik muncul di dalamnya: Dasar-dasar forwarding.