ฟีเจอร์นึงที่ QNAP NAS มีให้คุณได้ เพื่อให้แน่ใจว่าข้อมูลของคุณจะถูกปกป้องจากการสูญหายโดยความประมาทเลินเล่อ หรือความรู้เท่าไม่ถึงการณ์ มันก็คือ Snapshot แต่ก็ยังอาจมีหลายคนสงสัยว่า แล้วไอ้ฟีเจอร์ Snapshot นี้เนี่ย มันต่างจากการแบ็กอัพตามปกติที่เราๆ ท่านๆ ทำกันตรงไหน วันนี้บล็อกของผม จะเอามาเล่าสู่กันอ่านครับ ก่อนอื่นเลย Snapshot มันทำอะไร? รู้จักกับฟีเจอร์ Undo ไหมครับ? ไอ้ที่หลายๆ โปรแกรมในคอมพิวเตอร์เรามีอะ เวลาที่กด Undo (หรือหลายๆ โปรแกรมใช้ Shotcut เป็น Ctrl + z บนระบบปฏิบัติการ Windows หรือ Command + z บนระบบปฏิบัติการ macOS) มันจะยกเลิกการกระทำล่าสุดไปได้ แล้วพวกโปรแกรมเหล่านี้ก็จะอนุญาตให้เราสามารถ Undo ไปได้หลายสเต็ปอยู่

 

การทำ Snapshot มันก็คืออะไรคล้ายๆ แบบนี้อะครับ แต่ทำกันที่ระดับไฟล์ คือ ยอมให้เราทำการยกเลิกการเปลี่ยนแปลงใดๆ ที่ทำกับไฟล์ไปได้ เช่น สมมติว่าเราตั้ง QNAP NAS ให้ทำ Snapshot ไว้ทุกๆ ชั่วโมง นั่นจะหมายความว่าถ้าเกิดอยู่มาวันนึง ไฟล์เกิดติดไวรัส หรือ มีคนไปแก้ข้อมูลผิดแล้วเผลอเซฟทับไป หรือ มีคนเผลอลบไฟล์นั้นทิ้งไป เราก็จะสามารถทำการเรียกคืนไฟล์นั้น ในเวอร์ชันก่อนหน้าที่เราได้ทำ Snapshot เอาไว้ กลับมาได้ และสามารถเรียกย้อนไปดูในทุกๆ ชั่วโมงที่ทำ Snapshot ได้ เพื่อให้แน่ใจว่า เราได้ไฟล์เวอร์ชันที่เราต้องการกลับมาจริงๆ

 

แล้ว Snapshot ของ QNAP NAS เนี่ย เราทำได้ทั้งในระดับไฟล์ โฟลเดอร์ หรือแม้แต่ทั้ง Volume เลย … ขอแค่เรามีเตรียมพื้นที่เอาไว้เก็บ Snapshot มากพอครับ

 

QNAP Snapshot

 

แต่แบบนี้ มันก็เหมือนกับก็อปปี้ไฟล์หรือโฟลเดอร์ทั้งชุดขึ้นมาเก็บไว้ป่ะ? แล้วมันจะต่างกันตรงไหนกับแบ็กอัพปกติ?

การแบ็กอัพตามปกติ คือการทำสำเนาข้อมูลเก็บไว้ทั้งชุด นั่นหมายความว่า ถ้าคุณมีข้อมูลขนาด 5TB แล้วอยากจะเก็บแบ็กอัพไว้ คุณก็ต้องมีเนื้อที่อีก 5TB เอาไว้เก็บ ถ้าคุณจะสำรองข้อมูล 5TB นี้ทุกๆ 1 ชั่วโมงเก็บไว้ คุณจะต้องมีเนื้อที่เก็บข้อมูลอย่างน้อย 120TB เพื่อเก็บสำเนา ซึ่งเป็นอะไรที่ไม่สมเหตุสมผลเลย ถูกปะ นี่ยังไม่นับเรื่องเวลาที่ต้องใช้ไปในการเก็บสำเนาข้อมูลพวกนี้อีกนะ กว่าจะทำสำเนาเสร็จ 5TB นี่ไม่ใช่อะไรที่จะก็อปปี้กันเสร็จเร็วๆ ซะที่ไหน แถม NAS ก็จะสูญเสียทรัพยากรไปในระหว่างที่กำลังทำสำเนาอยู่อีก แล้วในระหว่างนั้นข้อมูลเกิดมีการเปลี่ยนแปลงอีกล่ะ?

 

ในทางกลับกัน Snapshot มันจะไม่ได้เก็บข้อมูลด้วยวิธีนั้น มันจะแค่เก็บข้อมูลเท่าที่จำเป็นสำหรับการ “ยกเลิกการเปลี่ยนแปลง” เอาไว้ เลยใช้เนื้อที่น้อยกว่าการทำแบ็กอัพมาก และยังทำได้รวดเร็วกว่าด้วย

 

การทำงานของ Snapshot บน QNAP NAS ในระดับ block level

หลักการทำงานของ Snapshot บน QNAP NAS มันจะเป็นแบบนี้ครับ เวลาทำ Snapshot ปุ๊บ ก็จะมีการก็อปปี้ข้อมูลที่เรียกว่า Metadata ซึ่งทำหน้าที่เก็บข้อมูลว่าข้อมูลแต่ละบล็อกนั้นถูกจัดเก็บเอาไว้ยังไง ซึ่งขอ้มูล Metadata เนี่ยมีขนาดเล็กมาก (เมื่อเทียบกับไฟล์ข้อมูลจริงๆ) และสามารถก็อปปี้ได้เสร็จอย่างรวดเร็ว

 

ทีนี้ เวลาข้อมูลบล็อกไหนมีการเปลี่ยนแปลง ข้อมูลบล็อกนั้นก็จะถูกสำเนาเก็บไว้ใน Snapshot ด้วย เป็นกระบวนการที่เรียกว่า “Copy on write” หรือ ทำสำเนาเมื่อถูกเขียนข้อมูล

 

เมื่อ Snapshot มีข้อมูล Metadata มันก็จะรู้ครับว่ามีข้อมูลบล็อกไหนบ้างที่ถูกสร้างเพิ่มขึ้นมานับตั้งแต่ทำ Snapshot ไว้ล่าสุด แล้วมีข้อมูลบล็อกไหนถูกเขียนทับไป พอเราต้องการจะยกเลิกการเปลี่ยนแปลง หรือพูดง่ายๆ คือ กู้ข้อมูลมาจาก Snapshot ที่ได้ทำไว้ มันก็จะทำการเอาบล็อกข้อมูลที่เก็บเอาไว้ใน Snapshot ไปเขียนทับบล็อกข้อมูลใดๆ ที่มีการเปลี่ยนแปลง บล็อกข้อมูลใดที่ถูกเพิ่มเข้ามาก่อนที่จะทำ Snapshot ก็จะถูกลบออก แค่นี้ทุกอย่างก็จะกลับมาเป็นเหมือนเดิมตอนที่ทำ Snapshot เอาไว้ ฉะนั้น ต่อให้ไฟล์จะถูกลบไปแล้ว ก็ยังกู้กลับมาได้ครับ ถ้าได้ทำ Snapshot เอาไว้

QNAP Snapshot

User Interface ของระบบ Snapshot บน QNAP NAS ดูเรียบง่าย ใช้งานง่าย

แล้ว Snapshot บน QNAP NAS ดียังไง?

มี User interface ที่ใช้งานง่าย เวลาจะกู้คืนข้อมูลก็แค่คลิกไปตรง Snapshot ที่เราต้องการ แล้วสามารถเลือกได้ว่าจะกู้คืนทั้ง Volume, หรือเฉพาะไฟล์หรือโฟลเดอร์ แถมเรายังตั้งว่าจะทำ Snapshot แบบ Manual หรืออัตโนมัติตามกำหนดเวลาก็ได้

ทำ Snapshot กันที่ Block level เลยทำให้มีประสิทธิภาพดีกว่าการทำที่ระดับ File level เพราะถ้าทำ Snapshot ที่ระดับ File level การเปลี่ยนแปลงกับไฟล์แม้จะเพียงเล็กน้อยก็จะต้องทำ Snapshot ทั้งไฟล์เลย แต่ถ้าทำที่ระดับ Block level แล้ว ก็จะสำเนาข้อมูลเก็บไว้เฉพาะบล็อกข้อมูลส่วนที่มีการเปลี่ยนแปลงเกิดขึ้น ซึ่งนั่นทำให้รวดเร็วกว่า และต้องใช้เนื้อที่ในการทำ Snapshot น้อยกว่า

และเพราะมันทำ Snapshot ที่ Block level นี่แหละ เลยทำให้เราทำ Snapshot ในระดับ Volume หรือ LUN ได้ ซึ่งรวมถึง ISCSi LUN ด้วย พวก Snapshot แบบอื่น ใช้ BTRFS (Better File System) ซึ่งจะสามารถทำ Snapshot ของ Volume ได้เฉพาะที่บริหารจัดการโดย BTRFS เท่านั้น

คุมการจัดสรรเนื้อที่สำหรับเก็บ Snapshot เพื่อให้แน่ใจว่า NAS ยังทำงานได้ดี ซึ่งตรงนี้ QNAP ให้เรากำหนดได้เลยว่าจะให้มีเนื้อที่สำคัญทำ Snapshot เท่าไหร่ แล้วเนื้อที่ที่กันไว้นี้ จะไม่มีไฟล์หรือแอปใดๆ เข้ามาย่างกรายแอบใช้ เพื่อให้แน่ใจว่าเรามีเนื้อที่เพียงพอสำหรับทำ Snapshot และในขณะเดียวกัน เนื้อที่ที่ไม่ได้ถูกจัดสรรไว้ ลำดับความสำคัญก็จะไปตกอยู่ที่ไฟล์และแอปอื่นๆ แทน ก็จะหมดห่วงปัญหาว่า Snapshot กินเนื้อที่มาจนเกินไป จนไปกระทบกับบริการของ NAS ในฐานะ File server เป็นต้น

ปัจจัยที่จะมีผลให้ขนาดของ Snapshot ใหญ่หรือเล็ก

ถ้าแค่เพิ่มไฟล์เข้าไปใน NAS เวลาทำ Snapshot ก็จะไม่จำเป็นต้องก็อปปี้ไฟล์ทั้งหมดที่เพิ่มเข้าไปไว้ใน Snapshot เก็บแค่ Metadata ที่บันทึกเอาไว้ว่ามีข้อมูลใดๆ ถูกเพิ่มเข้ามานับตั้งแต่ทำ Snapshot ล่าสุดเอาไว้ก็เท่านั้นเอง

 

แต่ถ้าเกิดจะลบไฟล์ หรือแก้ไขไฟล์ นี่สิ Snapshot จะต้องมีการสำเนาข้อมูลไฟล์ที่ถูกลบไปนั้นลงไปใน Snapshot อย่างน้อยๆ ก็เฉพาะส่วนของบล็อกข้อมูลที่มีการเปลี่ยนแปลงหรือถูกลบ ซึ่งนั่นจะมีขนาดใหญ่กว่า Metadata และทำให้ Snapshot มีขนาดใหญ่ขึ้น

 

แล้วกันเนื้อที่ทำ Snapshot แค่ไหนถึงจะพอ?

มันไม่มีสูตรตายตัวครับ มันอยู่ที่ว่าคุณต้องการจะทำ Snapshot ถี่ห่างขนาดไหน และทำ Snapshot ข้อมูลเยอะแค่ไหน คือ แม้จะเก็บไว้บน NAS ตัวเดียวกัน ก็ไม่ได้หมายความว่าข้อมูลทุก Volume ทุกโฟลเดอร์ มันจะต้องเก็บเป็น Snapshot ด้วยความถี่เท่ากัน และบาง Volume หรือโฟลเดอร์ ก็ไม่จำเป็นต้องทำ Snapshot เลยก็ได้ ทั้งนี้อยู่ที่การออกแบบของแต่ละคน แต่ละองค์กร

 

แต่สูตรง่ายๆ ที่ QNAP บอกมาคือ ถ้าเรากันเนื้อที่ไว้ให้ซัก 20% ของขนาดเนื้อที่บน NAS ก็จะเพียงพอต่อการทำ Snapshot ได้ราวๆ 256 ครั้ง ซึ่งนั่นก็มากเพียงพอสำหรับ

 

การทำ Snapshot ชั่วโมงละครั้ง ตลอด 1 สัปดาห์ = 168 snapshots

การทำ Snapshot หลักรายสัปดาห์ เดือนละ 4-5 snapshots (ครบเดือนแล้วค่อยเริ่มนับใหม่)

การทำ Snapshot หลักรายเดือน เดือนละ 1 snapshots (ครบปีแล้วค่อยเริ่มนับใหม่)

บวกเลขดูแล้ว ก็ใช้ประมาณ 180 snapshots ก็เหลือเฟือแล้วครับ ที่เหลือๆ ก็เผื่อเอาไว้ว่าต้องเก็บข้อมูลเยอะหน่อย เพราะดันแก้ไขไฟล์เยอะ ลบไฟล์เยอะ

 

ที่มา : kafaak.blog