ถ้าใครใช้ QNAP NAS อาจจะมีโอกาสที่จะเจอะเจอการแจ้งเตือนสถานะของ Volume ว่าเป็น Read/Delete จากนั้นข้อมูลใดๆ ที่อยู่ใน Volume นั้น ก็จะกลายเป็น อ่านได้อย่างเดียว ไม่สามารถเขียนข้อมูลทับเข้าไปได้ แล้วสถานะ Read/Delete มันก็แปลว่า อ่าน/ลบ มันหมายความว่ายังไงกันแน่ บล็อกตอนนี้มีคำตอบมาให้ครับ
Volume จะอยู่ในสถานะ Read/Delete ถ้าเกิดระบบกำลัง Rebuild RAID อยู่
คุณอาจจะได้เห็น Volume อยู่ในสถานะนี้ได้ หากคุณมีการเปลี่ยนฮาร์ดดิสก์ใน RAID group ไม่ว่าจากการถอดของเก่าที่เสียออก แล้วใส่ของใหม่เข้าไป การขยาย RAID group ด้วยการเพิ่มฮาร์ดดิสก์ หรือการเปลี่ยนฮาร์ดดิสก์ออกเพื่อเพิ่มขนาดของฮาร์ดดิสก์ ซึ่งเมื่อเราทำอย่างใดอย่างหนึ่งกับ RAID group ระบบก็จะต้องทำการ Rebuild RAID ใหม่ ซึ่งนั่นหมายถึงการ copy ข้อมูลไปใส่ฮาร์ดดิสก์ลูกใหม่ และการทำ Parity bits เพื่อสำรองข้อมูล ในช่วงกระบวนการนี้เอง แม้ว่า QNAP NAS จะยอมให้เราสามารถใช้งาน NAS ได้ ก็อาจจะอยู่ในสถานะที่ทำได้แค่อ่านข้อมูลหรือลบข้อมูลออกเท่านั้น จะไม่สามารถเขียนข้อมูลใหม่ลงไปทับได้ เพราะจะกระทบต่อระบบ RAID ครับ
เราจะสังเกตได้ว่า Volume อยู่ในสถานะ Read/Delete เพราะระบบกำลัง Rebuild RAID อยู่จากตรงหน้าจอ Storage & Snapshots > Storage/Snapshots แล้วดูตรง สถานะของ Storage Pool มันจะขึ้นเป็น Warning (Rebuilding) แบบในรูปด้านบนครับ
Volume จะอยู่ในสถานะ Read/Delete ถ้าเกิดเนื้อที่ของ Storage pool ถูกใช้งานหรือถูก Allocate จนเต็ม
อีกกรณีนึงที่เป็นไปได้ที่จะทำให้ Volume อยู่ในสถานะ Read/Delete ก็คือ กรณีที่เนื้อที่สำหรับทำ Snapshots เต็มครับ คืองี้ ต้องเข้าใจหลักการของการ Allocate เนื้อที่ใน Storage pool ก่อนครับ ปกติแล้ว เวลาเราสร้าง RAID group ขึ้นมาเป็น Storage pool เนื้อที่มันจะยังไม่ถูก Allocate (มันเหมือนกับการใส่ฮาร์ดดิสก์ลงไปในคอมพิวเตอร์ แต่ยังไม่ได้กำหนด Partition)
ทีนี้ในการ Allocate เนื้อที่ใน Storage pool อะ มันเอาไปใช้ได้ 2 ลักษณะ คือ
1️⃣ เอาไปใช้ทำ Volume ซึ่งในหนึ่ง Storage pool มันจะมี Volume ได้หลายอัน (เหมือนที่ฮาร์ดดิสก์ลูกนึง ก็สามารถสร้าง Partition ได้เยอะแยะ บน Windows จะมีไดร์ฟ C:\ D:\ E:\ ฯลฯ ได้) ทีนี้เราสามารถสร้าง Volume ได้สองลักษณะ คือ Static volume กับ Thick volume จะเหมือนๆ กัน คือ เราจะกำหนดขนาดของ Volume เอาไว้ ซึ่งจะเป็นการ “จอง” เนื้อที่บน Storage pool เอาไว้เลย Storage pool จะถือว่าเนื้อที่ถูกจองเอาไปแล้ว คนอื่นจะเอาไปใช้งานไม่ได้ แม้ว่าเนื้อที่จะไม่ได้มีข้อมูลใดๆ อยู่เลย เช่น ถ้ากำหนดให้ Static หรือ Thick volume มีขนาด 1TB แล้วละก็ ต่อให้จะมีข้อมูลอยู่ใน Volume จริงๆ แค่ 10GB ก็เหอะ Storage pool จะมองว่าเนื้อที่ใน Pool ถูกใช้ไปแล้ว 1TB ครับ
ส่วนการสร้าง Volume อีกลักษณะนึงคือ Thin volume ซึ่งในการสร้าง Thin volume นี่ เราก็จะสามารถกำหนดขนาดของ Volume ได้เช่นกัน แต่ในกรณีนี้ เนื้อที่จะถูก Allocate ไปเฉพาะเท่าที่มีข้อมูลเท่านั้น ดังนั้น หากใน Thin volume มีข้อมูลอยู่ในนั้น 10GB ละก็ Storage pool ก็จะมองว่าเนื้อที่ใน Pool ถูกใช้ไปแค่ 10GB ครับ แม้ว่าขนาดของ Volume จะถูกตั้งไว้ที่ 1TB ก็ตาม


2️⃣ เอาไป Allocate ให้ Snapshots ไว้ใช้ ซึ่งจริงๆ ก็จะคล้ายๆ กับการทำ Thick volume หรือ Thin volume อีกนั่นแหละ คือ ถ้าเราเปิดใช้งานฟีเจอร์ Snapshots ระบบจะถามว่าเราจะทำ Pool Guaranteed Snapshot Space ไหม มันคือการกำหนดเอาไว้เลยว่า จะบล็อกเนื้อที่บน Storage pool ไว้แค่ไหน สำหรับการเก็บ Snapshot เป็นขั้นต่ำ เพื่อป้องกันไม่ให้มีใครเผลอ Allocate เนื้อที่บน Storage pool มากเกินไป จนทำให้ไม่เหลือเนื้อที่เก็บ Snapshots ได้ตามจำนวน Version ที่เราต้องการ หรือเพียงพอต่อการเก็บ Snapshot ของข้อมูลที่มี
ซึ่งเมื่อเราทำ Pool Guaranteed Snapshot Space ไปแล้ว Storage pool ก็จะมองว่าเนื้อที่ส่วนนั้นถูกใช้ไปแล้ว ไม่สามารถเอาไปใช้ทำอย่างอื่นได้อีก และมันยังมีข้อแม้อีกนะ นั่นคือ ถ้าเกิดเรา Allocate เนื้อที่ให้กับ Volume ไม่เต็มเนื้อที่ของ Storaage pool ที่เหลือ เนื้อที่ที่เหลือนั้นก็อาจจะถูก Snapshots ใช้งานได้นะครับ
เช่น ถ้า Storage pool มีขนาด 10TB แล้วถูกกำหนด Pool Guaranteed Snapshot Space ไปซะ 2TB ก็แสดงว่าจะเหลือเนื้อที่ใช้งานแค่ 8TB เท่านั้น ซึ่งหากเรากำหนดเนื้อที่ให้กับ Volume ที่เป็น Thick volume ไปแค่ 6TB แล้วมีการสร้าง Thin volume อีก 2TB เนื้อที่ที่2TB นี้อาจจะถูกใช้ไปโดย Thin volume หรือไม่ก็ Snapshots ก็ได้

แต่ถ้าเราไม่ทำ Pool Guaranteed Snapshot Space เราก็ต้องห้าม Allocate เนื้อที่บน Storage pool จนเต็มนะ ไม่งั้นจะไม่เหลือเนื้อที่เอาไว้ให้ทำ Snapshots เลยนะครับ นั่นก็คือ สมมติเรามี Storage pool 10TB ถ้าเราสร้าง Thick volume เอาไว้ แล้ว Allocate เนื้อที่ไปให้ 8TB ก็แสดงว่าจะเหลือเนื้อที่ไว้สำหรับทำ Storage pool ไว้ 2TB แต่ถ้าในอนาคต ทะลึ่งขยาย Volume หรือสร้าง Volume ใหม่ขึ้นมา เนื้อที่สำหรับเก็บ Snapshots ก็จะยิ่งน้อยลงไปอีก จนอาจไม่พอที่จะเก็บได้ตามจำนวน Version ที่เราต้องการหรือเพียงพอต่อจำนวนข้อมูลที่เรามี

ในกรณีที่เนื้อที่มันถูก Allocate ไปจนเต็มแล้ว แล้วข้อมูลใน Volume ถูกเขียนไว้จนเต็มขนาดที่กำหนดไว้แล้ว ระบบก็จะมองว่ามันไม่สามารถเขียนข้อมูลใดๆ เข้าไปต่อได้แล้ว มันก็จะแจ้งสถานะของ Volume นั้นๆ เป็น Read/Delete ครับ ถ้าอยากปลดล็อกสถานะนี้ ก็ทำได้แค่ 2 ทาง คือ ลบข้อมูลออกซะบ้างเพื่อให้เนื้อที่มันว่าง หรือไม่ก็ขยายขนาดของ Volume โดยในกรณีที่มีเนื้อที่บน Storage pool อยู่ ก็สามารถ Resize volume เพื่อขยายขนาดได้ แต่หาก Storage pool ก็ไม่เหลือที่ให้ขยับขยายแล้ว ก็ต้องเปลี่ยนฮาร์ดดิสก์ให้มีขนาดใหญ่ขึ้นหรือเพิ่มฮาร์ดดิสก์ใน RAID group เพื่อเพิ่มเนื้อที่ครับ
หรือในกรณีที่ข้อมูลที่ทำ Snapshots มันเยอะมากจนกระทั่งเต็ม Pool ที่ถูกการันตีเอาไว้ แล้วขยายต่อไม่ได้ เพราะเนื้อที่บน Storage pool ก็ถูก Allocate ไปให้ Volume หมดแล้ว ระบบจะมองว่าจะไม่สามารถทำ Snapshots ไปได้ต่อตามแผน ระบบก็จะขึ้นเตือนให้ Volume ที่มีการทำ Snapshots เป็น Read/Delete เช่นกัน ถ้าเจอกรณีนี้ ทางแก้ที่จะทำได้ก็คือให้พิจารณาดังนี้ครับ
*️⃣ เช็กให้ดีๆ ว่าข้อมูลที่อยู่ใน Volume มันทันสมัยเรียบร้อยหรือยัง
*️⃣ เช็กให้ดีๆ ว่า มี Snapshots อันไหนที่จะต้องเก็บเอาไว้บ้าง (ตามนโยบายการสำรองข้อมูล)
*️⃣ ลบ Snapshots ที่ไม่จำเป็นออก เพื่อปลดปล่อยเนื้อที่ที่ถูกใช้เก็บ Snapshots ออกไปบ้าง
ปัญหาก็คือ บ่อยครั้งที่ Snapshots แต่ละเวอร์ชันจะไม่ได้กินเนื้อที่อะไรมากนัก เราเลยมักลงเอยด้วยการที่เราต้องลบ Snapshots ออกไปเป็นจำนวนมาก จนบางครั้งมันอาจจะไปกระทบกับข้อมูลบน Snapshot ที่จำเป็นต้องเก็บเอาไว้ตามนโยบาย ในกรณีนี้ทางออกมีแค่ทางเดียวครับ คือการดาวน์โหลดข้อมูลจาก Snapshots ออกมาใส่ External HDD หรือจะ Restore ออกไปที่โฟลเดอร์อื่นบน NAS ที่ยังมีเนื้อที่เหลือพอ หรือ Restore ไปยัง NAS ตัวอื่นก็ได้ครับ จากนั้นก็ลบ Snapshots ทิ้งให้หมดได้ (เพราะข้อมูลที่ต้องสำรองไว้ ถูกเก็บไว้แบบเป็นอีกก็อปปี้นึงแทนแล้ว) แล้วก็เริ่มทำ Snapshots กันใหม่ ซึ่งอาจจะต้องวางแผนเรื่องขยาย Storage pool เอาไว้ด้วยนะ เพราะหากเนื้อที่เต็มขนาดนี้ แสดงว่าเนื้อที่สำหรับเก็บอะไรอย่างใดอย่างหนึ่งมันไม่พอแล้ว