SMR บน Hard Disk คืออะไร มันทำให้ Performance มันห่วยขนาดนั้นเลยเหรอ
จากประเด็นร้อนแรงที่ WD โป๊ะแตก ว่า HDD จาก WD รุ่นใหม่ ๆ หลาย ๆ ตระกูลมีการใช้การใช้ SMR ที่หลาย ๆ คนบอกว่า มันทำให้ HDD มีประสิทธิภาพต่ำลง หรือถ้าเราใช้ใน พวก Disk Array ใน Server ก็พบปัญหาว่า เครื่องเข้าใจว่า HDD มันพัง แล้วตัดออกจากระบบไปเลยก็มี วันนี้เราจะมาดูกันว่า แล้วจริง ๆ แล้ว SMR คืออะไรกันแน่ แล้วมันส่งผลต่อรการใช้งานของเรามากแค่ไหน
Hard Disk ทำงานยังไง ?
ก่อนเราจะไปเข้าใจกันว่า SMR คืออะไร เราต้องมาเข้าในการทำงานของ Magnetic Hard Disk หรือที่เราเรียกกันว่า Hard Disk ธรรมดา กันก่อน
จริง ๆ Platter มันจะมีหลายแผ่นมาก ๆ หัวอ่านก็มีหลายหัวอยู่ตาม Platter แต่เราวาดได้แค่นี้แหละ ฮ่า ๆ
ใน Hard Disk ที่เราใช้งานกัน ถ้าเราแกะออกมา (อย่าแกะเล่น หมดประกัน และดีไม่ดีพังเลยนะ) เราจะเจอกับจานเงา ๆ หลาย ๆ จานวางอยู่ และมีหัวยื่นออกมาที่จาน หัวนั้นเราเรียกว่า หัวอ่าน
อย่างที่เราทราบกันดีว่า เครื่องคอมพิวเตอร์ เป็นเครื่องที่ทำงานในระบบ Digital นั่นคือ หน่วยข้อมูลที่เล็กที่สุดคือระดับ Bit หรือมีแค่ 0 และ 1 เท่านั้น เวลาเราเก็บข้อมูลในระดับของ Hardware เราก็เลยต้องเก็บข้อมูลเป็น 0 และ 1 เพื่อให้เวลาเราอ่านขึ้นมา เครื่องจะได้เข้าใจได้ว่ามันคืออะไรกันแน่
ซึ่งหลักการของพวก Magnetic Hard Disk ก็ตามชื่อเลยคือ มันใช้ แม่เหล็ก ในการบันทึกข้อมูลนั่นเอง โดยที่ เราจะเก็บข้อมูลโดยการที่เราสลับขั้ว เพื่อแทนค่า 0 และ 1 นั่นเอง
เวลาเราใช้งานจริง ๆ Motor จะหมุนตัวจานแม่เหล็กไปเรื่อย ๆ และหัวอ่านก็จะทำการอ่านและเขียนไปเรื่อย ๆ ทำให้เวลาเราอ่านข้อมูล Motor จะวิ่งไปเรื่อย ๆ หัวอ่านก็จะขยับ เพื่อหาข้อมูลที่เราเรียก แล้วคืนข้อมูลกลับไปให้เรา ทำให้ Access Time หรือ เวลาที่ตั้งแต่เราเรียก จนได้ข้อมูลมา มันจะช้ากว่า SSD ที่เราใช้กันในปัจจุบันมาก ถึงมากที่สุดเลย
หรือ เวลาเราเขียน มันก็ต้องหมุนไปหาอีกว่า ตรงไหนที่จะเขียนได้ ถ้าเราสุ่มสี่สุ่มห้าเขียน แล้วไปเขียนทับข้อมูลอื่น ๆ ข้อมูลตรงนั้นมันก็จะหายไปนั่นเอง พอหาเจอ แล้วมันก็หมุนแล้วเขียนลงไปเป็นอันจบ
รวม ๆ แล้ว เพราะการที่มันต้องหมุนหา หรือ Seek Time น่าจะเป็นตัวแปลสำคัญที่ทำให้พวก HDD มันช้ากว่า SSD มาก เพราะพวกนั้น Seek Time ต่ำมาก ๆๆๆๆๆๆ ถึงมากที่สุด
โดยปกติแล้ว เวลาเราไปซื้อ HDD พวกนี้กัน เราจะเจอกับค่าตัวนึงที่มันใช้หน่วยว่า rpm หรือ Round per Minute หรือก็คือ รอบต่อนาที ในภาษาไทยนั่นเอง บางคนบอกว่า เออ รอบเยอะ ๆ แล้วมันจะทำงานได้ดีขึ้น จริงรึเปล่า
ถ้าเราเดินไปซื้อ HDD เลย เราจะเจอรอบประมาณ 5200, 5400, 7200 และหมื่นรอบก็มี ซึ่งมันก็คือความเร็วของ Motor ที่ใช้หมุนจาน ทำให้ Seek Time น้อยลงแน่นอน และส่งถึงความเร็วแบบที่น่าจะรู้สึกได้เลย
โอเคนอกเรื่องไปละ เรากลับมาที่การเขียนกัน อย่างที่บอกว่า เวลาเราเขียน เราจะเขียนสุ่มสี่สุ่มห้าไม่ได้แน่ ๆ มันจะต้องมีการวาง Slot ของมันเพื่อให้เราสามารถเก็บได้เยอะที่สุดนั่นเอง โดยปกติแล้ว เราจะแบ่งจานออกเป็นช่อง ๆ เล็ก ๆ นึกถึงวงกลม เราเริ่มแบ่งออกเป็นวง ๆ เราเรียกว่า Track และ แต่ละส่วนของในวง เราเรียกว่า Cluster
PMR และ SMR คืออะไร ?
ซึ่งปกติเวลาเราเขียนข้อมูลเราจะแบ่ง Track ออกเป็นส่วน ๆ แยกออกจากกันไม่มีการเหลื่อม ก็ดูจะเป็นเรื่องปกติไปถูกม่ะ พวกนี้เราเรียกว่า PMR (Perpendicular Magnetic Recording)
แต่ปัญหามันจะมีอยู่ว่า แล้วถ้าเราต้องการให้ HDD ของเรามันมีความจุที่เพิ่มขึ้น แต่เราไม่สามารถที่จะเพิ่มจำนวนจานในนั้นได้ เพราะความหนาของ HDD มาตรฐานจำกัดอยู่ที่ 3.5 นิ้ว สำหรับ PC และ Server ทำให้การเพิ่มความหนาแน่นในการเก็บข้อมูลของจานต้องเพิ่มขึ้นแทน
วิธีนึงที่น่าสนใจคือ แทนที่ขนาด Track ของการอ่านและเขียนเราจะเท่ากัน เราลองทำให้ขนาด Track ของการเขียนใหญ่กว่า Track ของการอ่าน อ่านดูแล้ว เอ๊ะ แล้วมันจะทำให้จำนวน Track ต่อ Disk เยอะขึ้นได้ยังไง
ตรงนี้แหละทริกคือ พอขนาดของหัวอ่านเล็กกว่าหัวเขียน นั่นแปลว่า เราสามารถเขียนข้อมูลให้เหลื่อมกันได้ โดยที่ไม่มีปัญหากับหัวอ่านเลย เพราะหัวอ่านมันเล็กกว่า ขนาดที่เกินมาหัวอ่านไม่รู้เรื่องอยู่แล้ว เพราะการเขียนเหลื่อมกันนี่แหละ ทำให้จำนวน Track/Disk มีจำนวนมากขึ้นได้ เราเรียกเทคนิคแบบนี้ว่า SMR (Shingled Magnetic Recording)
นึกภาพเหมือนกับ บ้านเดี่ยวกับบ้านทาวน์เฮ้าส์อะ PMR เหมือนบ้านเดียวที่มีพื้นที่รอบบ้านอยู่ แต่เรามีพื้นที่เท่าเดิมอะ เราอยากขายบ้านมากขึ้นทำไงดี วิธีง่าย ๆ คือ เออ เราก็เอาพื้นที่รอบบ้านออกไปเดะถ้าคนไม่ได้ใช้อะ พื้นที่รอบ ๆ บ้านหลาย ๆ หลังรวม ๆ กัน เผลอ ๆ เราจะได้บ้านอีก 2-3 หลังเลยนะ ก็เหมือนกันเลย
ซึ่งเอาจริง ๆ คือพวก SMR บอกเลยนะว่ามันไม่ได้แย่ และ มันถูกใช้งานใน HDD ที่มีความจุสูง ๆ อยู่แล้ว อย่างพวก High Density Storage Server ส่วนใหญ่ ก็จะใช้ HDD ที่เป็น SMR เพื่อเพิ่มความจุของ HDD แต่ละลูกให้มันได้สูงขึ้น มองกลับคือ ถ้าเราบอกว่า เราต้องการ Storage ขนาด 10 EB เราอาจจะต้องใช้ Server รวม ๆ ทั้งหมด 24U ในการเก็บ แต่ถ้าเราใช้ SMR อาจจะเหลือแค่ 20U (สมมุตินะ) ในการเก็บเท่านั้น นั่นทำให้ต้นทุนถูกลงมาก รวมไปถึงค่าไฟในการ Operation ต่าง ๆ ก็ยังถูกลงไปอีก ทำให้ SMR มันดูเป็นเรื่องที่น่าสนใจมาก
แต่ข้อเสียของ SMR คือเรื่องของความเร็วในการเขียนแบบ Random เอาหล่ะ อาจจะ งง กัน เราอธิบายง่าย ๆ คือ เวลาเราอ่าน และ เขียน มันจะมีอยู่ 2 แบบใหญ่ ๆ คือ Sequencial หรือก็คือการอ่านเขียนแบบลากไปเลย ถ้าเป็น HDD ก็คือ Seek Time ก็จะมีแค่รอบเดียว แล้วก็อ่านปรืดดดด ยาวไปตาม Segment ได้เลย ทำให้ Sequencial Read และ Write ไม่ค่อยมีปัญหาใน HDD เลย
แต่พอไปเป็นอีกแบบคือ Random Read/Write จะเป็นอีกเรื่องเลย มันคือ การที่ข้อมูลมันอยู่คนละส่วนของ HDD เราทำให้ Seek Time เพิ่มขึ้นอย่างรุนแรง แทนที่จะหารอบเดียว กลายเป็นหาหลายรอบ ทำให้ความช้าคือ สุด ๆ ไปเลย เพราะมันต้องมานั่ง Seek หาทีละส่วน ๆ ไปเรื่อย ๆ และเขียนหรืออ่านจนครบ
ข้อเสียของ SMR
ซึ่งข้อเสียที่เราอ่านมาของ SMR คือปัญหาของ Performance ในการอ่านเขียนแบบ Random มากกว่า ที่เขาบอกกันว่ามันช้ากว่าเยอะ เราลองมาหาเหตุผลกันดีกว่า มันช้าจริง และ ทำไมมันถึงช้าหรือเร็ว
ในการอ่าน ต้องบอกเลยว่า ไม่มีผลอะไรเลย ไม่ว่าจะเป็น PMR หรือ SMR อะไรก็ตามเพราะสุดท้าย ขนาดของหัวอ่าน ก็ยังเท่ากับ หรือ เล็กกว่า ขนาดของ Track จริง ๆ จะอ่านแบบไหนก็ไม่ได้ต่างกัน
เราไปที่การเขียนดีกว่า เพราะอย่างที่เราบอกไปก่อนหน้านี้ว่า SMR มันจะเขียนเหลื่อม Track กัน ทำให้ภาพที่เราเห็นคือเหมือนแต่ละ Track มันอยู่ติดกัน แต่ความจริงแล้ว มันเกิดจากการที่หัวเขียนมันใหญ่กว่าหัวอ่านแล้วเขียนทับกันนั่นเอง
ปัญหามันจะเริ่มเกิดตอนเราเขียนทับละ เพราะถ้าเราบอกว่า ที่มันเหลื่อมกัน มันเป็นเพราะเขียนทับ แล้วถ้าเราต้องเขียนทับตรงกลางละ จะเกิดอะไรขึ้น
สิ่งที่เกิดคือ เมื่อเราเขียนทับไปแล้ว มันไม่ได้ทับแค่ Track ที่เราต้องการอย่างเดียว มันจะไปทับ Track ข้าง ๆ ด้วย นั่นแปลว่า มันจะต้องอ่านและเก็บข้อมูลของ Track ข้าง ๆ ซะก่อน แล้วจึงเขียน Track ที่ต้องการลงไป พอเราเขียน Track ข้าง ๆ ลงไป อี Track ข้าง ๆ อีกมันก็จะโดนทับอีก ก็ต้องทำแบบนี้ไปเรื่อย ๆ จนหมด
ถ้าเราไปสังเกต HDD ที่เป็น SMR จะเห็นได้ว่า มันจะมี Cache ที่มีขนาดใหญ่กว่า HDD แบบ PMR เยอะเลย ตัวอย่างเช่น WD Red ที่เป็นปัญหา WD Red ขนาด 4TB รหัส WD40EFAX ที่เป็น SMR เทียบกับ WD40EFRX ขนาดของ Cache จะต่างกันพอสมควรคือ EFAX ขนาดอยู่ที่ 256 MB ในขณะที่ EFRX อยู่ที่ 64 MB เท่านั้น เรา เดา ว่าที่มันต้องใหญ่กว่า เพื่อให้เวลามันเขียนข้อมูล มันต้อง Cache ข้อมูลของ Track ข้าง ๆ ไว้มันเลยต้องมี Cache ใหญ่เข้าไปเพื่อเก็บข้อมูลตรงนั้น
เท่าที่อ่านมาจากหลาย ๆ ที่บอกว่า การเขียนแบบ Sequencial ดูไม่มีปัญหา แต่เอาเราคิดจากวิธีที่ใช้ เราว่ามันน่าจะต้องช้ากว่านิดหน่อยนะ เพื่อให้มันมีเวลาเขียนคืน Track ที่เหลือไปเรื่อย ๆ ใครทราบช่วยบอกที
แต่อันที่เราเห็นตรงกับคนอื่นมาก ๆ เลยคือ เรื่องของ Random Write อันนี้คิดยังไงก็ปัญหาชัด ๆ ถ้าเราทำมันเยอะ ๆ อย่างที่เรารู้ว่า พอเราเขียน Track นึง ไม่ว่าจะเล็กหรือน้อย Segment แถวนั้นทั้งยวง ในทุก Track จะต้องถูกเขียนใหม่ทั้งหมด นั่นแปลว่า ถ้าเราเขียนแบบ Random เข้าไป โอ้โห้ เขียนทุก Track กันหอมหวานเลยแหละ มันจะไม่คุ้มอะ เสียเวลาเพิ่มเยอะ เมื่อเทียบกับ Sequencial ที่มันอาจจะเขียนยาวหน่อย การไล่ Track อาจจะคุ้มอะไรแบบนั้นมั่ง
SMR ไม่ใช่ผู้ร้าย
หลายคนอ่านมาถึงตรงนี้ อาจจะสงสัยว่า อ้าว SMR มันแย่ขนาดนี้แล้วทำไมเราต้องใช้มันละ สิ่งที่เราจะบอกจากเหตุการณ์นี้คือ SMR ไม่ใช่ผู้ร้ายแต่อย่างใด มันมีข้อดีของมันอยู่ ใช่แหละมันเพิ่ม Density ของ HDD ทำให้เรามีความจุต่อลูกที่สูงขึ้นนั่นหมายถึง ลดต้นทุน และ การดูแลต่าง ๆ ลงไป
ถามว่า แล้วพวก HDD ที่ใช้ SMR น่าจะเอาไปใช้กับอะไร อะ ยกตัวอย่างง่าย ๆ เลย คือ CCTV ไง พวกนี้มันต้องมีการเขียนข้อมูลตลอดเวลา แต่ลักษณะของการเขียน เราเขียนเป็น Sequencial ทั้งหมดไง เพื่อให้เวลาเราเขียนไปจนเต็ม เราก็ย้อนกลับไปทับอันเก่าได้เลย ทำให้ SMR เหมาะมากในการที่เราจะใช้กับ CCTV
อีก Application นึงคือ การทำพวก Cold Storage หรือพวก Archival Data Storage พวกนั้น พูดง่าย ๆ คือ มันเป็นที่สำหรับเก็บข้อมูลที่เราไม่ได้เรียกใช้บ่อย ๆ เวลาเราเขียน เราก็เขียนด้วยไฟล์ขนาด หรือมีหลาย ๆ ไฟล์ต่อ ๆ กันอยู่แล้ว ทำให้ลืมพวก Random Write ไปได้เลย ถ้าเราจัดดี ๆ มันใช้ Sequencial ได้สบาย ๆ เลย
เนอะ เห็นม่ะว่า ในหลาย ๆ การใช้งานพวก HDD ที่ใช้ SMR ก็มีข้อดีมากกว่า PMR เพราะเราไม่ได้จำเป็นที่จะต้องเขียนแบบ Random เยอะ สู้เราใช้ SMR ที่มีความจุสูงกว่า ก็เป็นการลดขนาดของเครื่อง และ ต้นทุนได้แล้ว
ทำไมมันเป็นกระแสขึ้นมาละ
ที่เราได้ยิน และอ่านข่าวมามันไม่ได้เกิดจาก การเลือกใช้ SMR แต่เป็นการใช้แล้วไม่บอกผู้บริโภคมากกว่า แบบ แอ๊บแอ๋ ไม่บอกอะ ทำให้คนที่ซื้อไปใช้ Random Write ก็เจอปัญหาไปตาม ๆ กัน เพราะดูจากที่ผู้ผลิตเขียนแล้วมันน่าจะโอเค
ทำให้สิ่งที่คนคิดกันคือ นี่ไง พอใช้ SMR ใน Disk ขนาดเล็ก ก็เพราะจะลดต้นทุนไง เพราะ SMR มันเกิดมาเพื่ออยากให้ความจุมันใหญ่กว่านี้ โดยที่ขนาดจานเท่าเดิม แต่นี่ไม่ ๆ เราอยากให้จานเล็กลง เลยแอบใช้ SMR ไปเพื่อลดต้นทุนของจาน นี่คือสิ่งที่คนคิดกัน ที่เราบอกแบบนี้ เพราะเราไม่อยากเข้าข้างใครนะ เราไม่รู้หรอกว่า จริง ๆ เขาคิดอะไรอยู่
พีคกว่านั้นคือยี่ห้อนั้น ก็ยังออกมาบอกอีกนะว่า เออเนี่ย ที่เราใช้ SMR มันเหมาะกว่านะ โน่นนี่นั่น ก็คืออ้างสีข้างถลอกแหละ คนเลยยิ่งหงุดหงิดกันยกใหญ่
ที่เราว่าตลกคือ WD Black ขนาด 2.5 นิ้ว รหัส WD10SPSX ก็ไม่รอดเช่นกันเป็น SMR นี่ก็เห้ยยย มันเป็นรุ่น Performance เลยนะ ทำไมทำแบบนี้
สรุป
SMR ไม่ใช่ เทคโนโลยีที่ตัน ไร้อนาคต หรือแย่เลย ตรงกันข้ามซะอีก แต่สุดท้าย มันไม่มีอะไรที่จะเหมาะกับทุกอย่างหรอก มันก็ขึ้นกับการใช้งานของเรามากกว่าว่าเราใช้งานของชิ้นนั้นเป็นยังไง แล้วก็เลือกให้เหมาะกับการใช้งานของเราเท่านั้นเอง แต่การที่แอ๊บแอ๋ เนี่ยแหละ ทำให้มันเป็นประเด็นขึ้นมา ไม่ดีเลยนะจุ๊ ๆ
ปล. ถ้าไปอ่านแล้วเจอที่ WD เขียนว่า CMR มันย่อมาจาก Conventional Magnetic Recording อีกชื่อเราเรียกว่า PMR (Perpendicular Magnetic Recording)