เรียนรู้ว่า NVMe over TCP คืออะไร และ NVMe over TCP ทำงานอย่างไรในภาษาง่ายๆ
อธิบาย NVMe ผ่าน TCP
ความต้องการที่เพิ่มขึ้นสำหรับการประมวลผลแบบคลาวด์ต้องการระบบจัดเก็บข้อมูลที่มีประสิทธิภาพและราคาย่อมเยา แม้ว่าฮาร์ดดิสก์ไดร์ฟ (HDD) ทั่วไปจะมีราคาถูก แต่สิ่งเหล่านี้ไม่สามารถโฮสต์ซอฟต์แวร์ที่ขับเคลื่อนด้วยประสิทธิภาพหรือกระบวนการคำนวณบนคลาวด์ได้
ดังนั้น เพื่อแก้ไขปัญหานี้ในพื้นที่จัดเก็บข้อมูลขนาดใหญ่สำหรับอุปกรณ์คอมพิวเตอร์ NVM Express Inc. จึงเผยแพร่สถาปัตยกรรมสำหรับ NVMe SSD ซึ่งเป็นอุปกรณ์จัดเก็บข้อมูลภายในที่รวดเร็วเป็นพิเศษสำหรับคอมพิวเตอร์ผ่าน PCIe หรือบัส Peripheral Component Interconnect Express
อย่างไรก็ตาม PCIe ใช้สำหรับการสื่อสารข้อมูลโดยตรงระหว่าง RAM และ NVMe SSD เท่านั้น เราจะใช้สิ่งเดียวกันนี้กับสภาพแวดล้อมการประมวลผลแบบคลาวด์ที่คอมพิวเตอร์โฮสต์และไคลเอนต์ตั้งอยู่ในสถานที่ห่างไกลได้อย่างไร อุปกรณ์เหล่านี้สามารถสื่อสารผ่านอินเทอร์เน็ตหรืออินทราเน็ตเท่านั้น
เพื่อรับมือกับความท้าทายนี้ NVMe over Fabric หรือโปรโตคอล NVMe-oF ได้รับการออกแบบมาเพื่อให้สามารถพัฒนาโซลูชันการจัดเก็บข้อมูลเครือข่าย NVMe ได้ ใช้อินเทอร์เฟซข้อกำหนดอุปกรณ์แบบลอจิคัล NVMe เพื่อถ่ายโอนข้อมูลระหว่างโฮสต์คอมพิวเตอร์หรือเซิร์ฟเวอร์กับเครือข่ายพื้นที่เก็บข้อมูล (SAN) หรือที่เก็บข้อมูลที่แนบมาโดยตรง (DAS)
แต่การปรับใช้ NVMe-oF นั้นมีราคาแพงมากแม้แต่กับองค์กรขนาดใหญ่ นอกจากนี้ เนื่องจาก NVMe-oF ต้องการสายเคเบิลไฟเบอร์ออปติกเป็นสื่อกลางในการขนส่งข้อมูลจากจุด A ไปยังจุด B เป็นหลัก จึงไม่เพียงเป็นไปได้ที่จะปรับใช้ NVMe-oF สำหรับคลาวด์สาธารณะเท่านั้น
เพื่อแก้ไขปัญหานี้ NVM Express Inc. ได้คิดค้นโปรโตคอล NVMe over TCP หรือ NVMe/TCP
NVMe บน TCP (NVMe/TCP) คืออะไร
NVMe/TCP เป็นรุ่นเพิ่มเติมของข้อกำหนดคำสั่ง I/O หน่วยเก็บข้อมูลที่ใช้ NVMe เป็นเวอร์ชันขั้นสูงของ NVMe-oF และกำหนดฟังก์ชันการทำงานของโปรโตคอลการถ่ายโอนข้อมูล NVMe ไปยังโปรโตคอลการสื่อสารแบบใช้ข้อความ TCP
มี NVMe/TCP Transport Specification ที่อธิบายถึงสิ่งต่อไปนี้:
โดยสรุป การรวมกันของ NVMe และ TCP ทำให้ NVMe/TCP ถ่ายโอนข้อมูลและคำสั่งได้เร็วขึ้นและปราศจากข้อผิดพลาดระหว่างโฮสต์ NVMe-oF และอุปกรณ์ควบคุม NVMe-oF
อุปกรณ์ดังกล่าวสามารถเชื่อมต่อผ่านอินเทอร์เน็ตและอินทราเน็ตโดยใช้เครือข่าย TCP/IP บนอีเทอร์เน็ต สื่อการเชื่อมต่ออาจเป็นสายเคเบิลใยแก้วนำแสงหรือสายเคเบิล Cat 5 และ Cat 6 ทั่วไป
เหตุใดจึงต้องใช้ NVMe มากกว่า TCP
ระบบการขนส่ง NVMe ดั้งเดิมนั้นมีไว้สำหรับ SSD ที่จะเข้าสู่ระบบพีซีโดยตรง โดยส่วนใหญ่อยู่บนเมนบอร์ด โปรโตคอลการขนส่งได้รับการปรับให้เหมาะสมในขั้นต้นสำหรับ NVM PCIe SSD ที่เชื่อมต่อกับเซิร์ฟเวอร์หรือเวิร์กสเตชันภายใน
ในภายหลังสำหรับข้อกำหนดการจัดเก็บข้อมูลขนาดใหญ่ที่รวดเร็วและน่าทึ่งบนคลาวด์ โปรโตคอลการขนส่ง NVMe ที่เชื่อมต่อกับข้อกำหนดการรวมการขนส่งที่ศูนย์ข้อมูลบนคลาวด์ใช้ส่วนใหญ่ เช่น Fibre Channel, RDMA over Converged Ethernet (RoCE), Internet Wide Area RDMA Protocol (iWARP) และอินฟินิแบนด์
แม้ว่าการแก้ไข NVMe ข้างต้นจะทำงานได้ดี แต่ก็ไม่เหมาะสำหรับระบบคลาวด์สาธารณะ เนื่องจากไคลเอ็นต์ต้องใช้อุปกรณ์ฮาร์ดแวร์พิเศษ ดังนั้น ระบบเชื่อมโยงการขนส่ง TCP จึงถูกรวมเข้าไว้ด้วยกัน ซึ่งพร้อมใช้งานทั่วโลกและเชื่อถือได้ผ่านเครือข่ายทางไกล
องค์ประกอบหลักของ NVMe บน TCP
ข้อกำหนดการขนส่ง NVMe/TCP สำหรับ NVMe-oF ประกอบด้วยส่วนประกอบเครือข่ายต่อไปนี้:
- ระบบการเข้าถึงข้อมูลระยะไกลโดยใช้โปรโตคอล NVMe เป็นไปตาม Open Systems Interconnection (OSI) Model สำหรับระบบเครือข่ายคอมพิวเตอร์
- NVMe/TCP ใช้เทคโนโลยีเครือข่ายอีเธอร์เน็ตที่ทำงานในเลเยอร์ OSI กายภาพและดาต้าลิงก์ OSI
- สำหรับโปรโตคอลการสื่อสารและนโยบายการแลกเปลี่ยนข้อมูลแพ็คเก็ต NVMe/TCP อาศัยโปรโตคอล TCP/IP
- ชุดคำสั่ง NVMe เพื่อแปลงคำสั่งที่ผู้ใช้ออกและแอปพลิเคชัน I/O ทั้งหมดให้เป็นตารางคำสั่ง NVMe เฉพาะ เช่น ผู้ดูแลระบบ, I/O, แฟบริค เป็นต้น
- การถ่ายโอนคำสั่ง NVMe จากระยะไกลในรูปแบบแฟบริกข้อความ เกิดขึ้นโดยใช้แคปซูล แคปซูลเหล่านี้อาจเป็นแคปซูลตอบสนองหรือคำสั่งก็ได้ แคปซูลคำสั่ง NVMe แสดงถึงหน่วยของการแลกเปลี่ยนข้อมูล NVMe
- ระบบย่อยและโฮสต์คอนโทรลเลอร์สื่อสารระหว่างกันโดยการแลกเปลี่ยน NVMe/TCP Protocol Data Units หรือ NVMe/TCP PDU
- มีกระบวนการเชื่อมต่อสามขั้นตอนระหว่างระบบย่อยของคอนโทรลเลอร์และโฮสต์ ขั้นตอนหรือขั้นตอนเหล่านี้ได้แก่ NVMe-oF Connect, NVMe/TCP Connect และ Fabric Connect
- ในระบบการเชื่อมโยงการขนส่ง NVMe/TCP ตัวควบคุม I/O แบบไดนามิกจะถูกสร้างขึ้นโดยอัตโนมัติและกำหนดให้กับคอมพิวเตอร์โฮสต์เมื่อระบบย่อยเชื่อมต่อกับโฮสต์ NVMe-OF สำเร็จ
ประโยชน์ของ NVMe บน TCP
- TCP เป็นโปรโตคอลการถ่ายโอนข้อมูลทางอินเทอร์เน็ตหรืออินทราเน็ตที่ใช้กันแพร่หลายมากที่สุด และพร้อมใช้งานกับศูนย์ข้อมูลทุกแห่งและไคลเอนต์ของทรัพยากรคลาวด์คอมพิวติ้ง
- ศูนย์ข้อมูลและไคลเอนต์ไม่จำเป็นต้องเปลี่ยนฮาร์ดแวร์เครือข่ายที่มีอยู่ เช่น เราเตอร์ สวิตช์ และ NIC
- TCP สามารถใช้ได้ทั้งสายไฟเบอร์และสาย Cat 5 หรือ Cat 6 ดังนั้นการบำรุงรักษาจึงค่อนข้างง่าย
- การรวมการขนส่ง TCP สำหรับ NVMe-oF ให้ประสิทธิภาพสูงและเวลาแฝงต่ำ ดังนั้นจึงเหมาะอย่างยิ่งสำหรับกระบวนการที่สำคัญต่อภารกิจและใช้ CPU มากบนโฮสต์คอมพิวเตอร์ และเข้าถึงได้ง่ายโดยไคลเอ็นต์ระยะไกลหลายเครื่องโดยไม่มีข้อขัดแย้งในการอ่าน/เขียน
- TCP นำเสนอการกำหนดเส้นทางแบบไดนามิก ดังนั้น เมื่อเปรียบเทียบกับการเข้าถึงหน่วยความจำโดยตรงจากระยะไกล (RDMA) TCP จึงเป็นประสิทธิภาพสูงสุดในศูนย์ข้อมูลขนาดใหญ่และการดำเนินงานบนคลาวด์จากระยะทางที่ไกลกว่า
- TCP มีชุมชนการพัฒนาที่ใหญ่กว่าข้อกำหนดการขนส่ง NVMe อื่นๆ
ความท้าทายของ NVMe เหนือ TCP
- เมื่อใช้สแต็ก TCP คุณต้องอนุญาตให้ CPU แก้ไขการดำเนินการส่วนใหญ่ของ TCP เช่น การคำนวณเช็คซัม ดังนั้น ในระดับที่ใหญ่ขึ้น เมื่อเวิร์กสเตชันไคลเอนต์หลายเครื่องร้องขอให้เขียนและอ่านข้อมูลจากอุปกรณ์จัดเก็บข้อมูลในเครือข่ายผ่านโฮสต์พีซี ภาระงานบนโฮสต์ CPU จะเพิ่มขึ้น
- โครงสร้างพื้นฐานแบบไฮเปอร์คอนเวอร์จต้องเรียบง่าย อย่างไรก็ตาม เมื่อคุณใช้ NVMe/TCP คุณจะทำให้มันซับซ้อน
- นอกจากนี้ NVMe บน TCP ยังมีจุดอ่อนด้านความปลอดภัยบางประการที่แฮ็กเกอร์สามารถใช้เพื่อแทรกซึมการทำงานของระบบคลาวด์ ขโมยข้อมูล และทำให้ข้อมูลที่เป็นความลับพร้อมใช้งานบนเว็บ มืด เว้นแต่คุณจะปรับใช้โซลูชันการรักษาความปลอดภัยทางไซเบอร์และ การป้องกันไวรัส ที่เข้มงวด
NVMe ผ่าน TCP: คำสุดท้าย
TCP เป็นโปรโตคอลชั้นนำในศูนย์ข้อมูลเครือข่ายสาธารณะหรือส่วนตัว ดังนั้น NVMe/TCP จึงเป็นตัวเลือกแรกสำหรับการจัดหาโซลูชันการจัดเก็บข้อมูลราคาไม่แพงผ่านอินเทอร์เน็ต อินทราเน็ต และโครงสร้างพื้นฐานระบบคลาวด์
โปรโตคอลนี้ยังสามารถปรับขนาดได้และเชื่อถือได้ผ่านการเชื่อมต่อเครือข่ายทางไกล เนื่องจากเวลาแฝงในการอ่าน/เขียนที่เก็บข้อมูลบนคลาวด์เทียบเท่ากับโปรโตคอลไฟเบอร์แชนเนลส่วนใหญ่ NVMe บน TCP จึงเป็นโซลูชันการขนส่งที่เก็บข้อมูลบนคลาวด์ที่ต้องการ
ถัดไป 3 ทางเลือกสำหรับที่เก็บข้อมูลบนคลาวด์