APFS (Apple File System) บน macOS มีฟีเจอร์เด่นที่ช่วยประหยัดพื้นที่จัดเก็บและเพิ่มความเร็วในการจัดการไฟล์อย่างมหาศาล นั่นคือ File Cloning และ Copy-on-Write (CoW) ซึ่งแตกต่างจากการคัดลอกไฟล์แบบดั้งเดิมที่ต้องเขียนข้อมูลซ้ำลงบนดิสก์ใหม่ทั้งหมด
หลักการทำงานของ Copy-on-Write (CoW)
เมื่อคุณสั่งคัดลอกไฟล์ขนาดใหญ่บน APFS (เช่น การกด Duplicate ใน Finder) ระบบจะไม่ทำการสำเนาข้อมูลดิบ (Data Blocks) จริง ๆ ทันที แต่จะสร้าง “ตัวชี้ข้อมูล” (Metadata Reference) ชุดใหม่ขึ้นมาเพื่อชี้ไปยังตำแหน่งบล็อกข้อมูลเดิมที่มีอยู่แล้วบนดิสก์ ส่งผลให้กระบวนการเสร็จสิ้นในพริบตาและไม่กินพื้นที่เพิ่มขึ้นเลยในตอนแรก
ข้อมูลจะถูกแยกออกจากกันก็ต่อเมื่อมีไฟล์ใดไฟล์หนึ่งถูกแก้ไขหรือเขียนทับ (Modify) ระบบถึงจะทำการเขียนข้อมูลส่วนที่เปลี่ยนแปลงลงบนพื้นที่ว่างใหม่จริง ๆ ส่วนข้อมูลส่วนที่เหลือที่ยังเหมือนเดิมจะยังคงใช้บล็อกข้อมูลร่วมกันต่อไป กลไกนี้จึงเป็นที่มาของคำว่า “เขียนเมื่อมีการเปลี่ยนแปลง” (Copy-on-Write)
จุดเด่นของระบบ File Cloning บน APFS
- ประหยัดพื้นที่ทันที
การคัดลอกไฟล์ขนาดหลักสิกิกะไบต์จะใช้พื้นที่ดิสก์เพิ่มขึ้นเป็นศูนย์ในตอนแรก ช่วยแก้ปัญหาพื้นที่เต็มจากการสำรองข้อมูลไฟล์งานหรือโปรเจกต์ซ้ำ ๆ - ความเร็วสูงระดับวินาที
เนื่องจากไม่มีการอ่านและเขียนข้อมูลดิบซ้ำลงดิสก์ การสร้างสำเนาไฟล์ขนาดใหญ่จึงเสร็จเกือบจะทันทีโดยไม่หน่วงระบบ - ทำงานอัตโนมัติ
เมื่อคุณสั่ง Duplicate ไฟล์หรือโฟลเดอร์ผ่าน Finder ปกติ macOS จะเลือกใช้กลไก CoW ของ APFS ให้โดยปริยาย
วิธีใช้งานผ่าน Command Line (Terminal)
หากต้องการบังคับสร้างไฟล์ Clone ผ่าน Terminal สามารถใช้คำสั่ง cp ร่วมกับแฟล็ก -c ได้ทันที cp -c source_file.ext cloned_file.ext คำสั่งนี้จะสั่งให้ระบบไฟล์ APFS ทำการโคลนไฟล์โดยใช้กลไก CoW ทันที โดยพื้นที่จริงที่ถูกใช้งานจะไม่เพิ่มขึ้นจนกว่าจะมีการแก้ไขเปลี่ยนแปลงภายในไฟล์นั้น ๆ เกิดขึ้น