ถ้าเราเป็นผู้ใช้ทั่วๆ ไป แต่มีพื้นที่เก็บข้อมูลบน filesystem แบบ btrfs เราสามารถทำสิ่งที่คล้ายๆ กับการทำ snapshot ได้เช่นกัน แต่จะใช้พื้นที่เยอะกว่าเล็กน้อย และช้ากว่าหน่อยนึงด้วย
วิธีการคือการใช้คำสั่ง cp (copy) โดยใช้อ็อพชั่น --reflink=always กับ -a ซึ่ง -a หรือ --archive คือการคัดลอกทั้ง subdirectory และไม่แปลง soft-link กลับเป็นไฟล์ และรักษาคุณสมบัติของไฟล์ทุกประการไว้
ส่วน --reflink ใช้กับการคัดลอกแบบ CoW คือไฟล์ที่ได้จะอยู่บนคนละ inode แต่ใน inode ชี้ไปหารายการบล็อคชุดเดียวกันกับต้นฉบับ เว้นแต่เมื่อบล็อคใดมีการแก้ไข จะถูกสำเนาไปเป็นบล็อคใหม่ทันที
เช่น ใน home ของผู้ใช้มีข้อมูลสำคัญเก็บใน Documents ต้องการสำเนาทั้งหมดเก็บไว้แบบ snapshot
$ mkdir backups
$ cp -a --reflink=always Documents backups/Documents-20110825
การคัดลอกจะใช้เวลาไม่นานนัก เพราะมีการอัพเดทเฉพาะส่วน metadata โดยส่วนข้อมูลยังชี้ไปที่เดิม พื้นที่ของดิสก์จะลดลงเล็กน้อย
สามารถสำเนาแบบนี้ได้อีกหลายๆ ครั้งตามต้องการ เช่น ในวันต่อมาก็สั่ง
$ cp -a --reflink=always Documents backups/Documents-20110826
เมื่อต้องการลบ snapshot เหล่านี้ออกบ้าง ก็ใช้คำสั่ง rm -rf ออกได้ เช่น
$ rm -rf backups/Documents-20110825
ซึ่งจะได้คืนเนื้อที่ที่เกิดจากความแตกต่างระหว่าง snapshot กับข้อมูลปัจจุบัน
ไม่มีความคิดเห็น :
แสดงความคิดเห็น