PlusMagi's Blog By Pitt Phunsanit Backend,Cloud Computing,macOS macOS: ฟีเจอร์ Clone ไฟล์แบบ Cloning & Copy-on-Write (CoW)

macOS: ฟีเจอร์ Clone ไฟล์แบบ Cloning & Copy-on-Write (CoW)

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 ทันที โดยพื้นที่จริงที่ถูกใช้งานจะไม่เพิ่มขึ้นจนกว่าจะมีการแก้ไขเปลี่ยนแปลงภายในไฟล์นั้น ๆ เกิดขึ้น


Tags: ,