Tags:
Node Thumbnail

Apple ได้เปิดตัวระบบไฟล์ใหม่ของทางบริษัท โดยใช้ชื่อระบบไฟล์ว่า Apple File System หรือเขียนย่อเป็น APFS โดยระบบไฟล์ใหม่นี้จะมาแทนระบบไฟล์ Hierachical File System หรือ HFS ของทางบริษัทที่ใช้บน Mac กันมาอย่างยาวนาน และช่วงหลังก็ได้ปรับปรุงเป็น HFS+

สำหรับระบบไฟล์ใหม่ของ Apple ตั้งใจจะใช้ตั้งแต่อุปกรณ์เล็กๆ อย่าง Apple Watch จนถึงคอมพิวเตอร์อย่าง Mac Pro โดย APFS มีฟีเจอร์คร่าวๆ ดังนี้

  • ปรับปรุงการใช้งานกับ Flash, SSD และใช้งานบนฮาร์ดดิสก์แบบเดิมได้ โดยมีการออกแบบ unique copy-on-write โดยใช้ I/O coalescing เพื่อให้ได้ประสิทธิภาพสูงสุดและยังมีความมั่นคงของข้อมูล
  • Space Sharing อนุญาตให้ระบบไฟล์หลายตัวแบ่งปันพื้นที่ว่างภายในที่เก็บข้อมูลได้ คือ APFS จะสามารถเพิ่มและลดขนาดได้โดยไม่ต้องมีการพาร์ทิชั่นฮาร์ดดิสก์ใหม่ เช่น ฮาร์ดดิสก์ขนาด 100GB มีพาร์ทิชั่น A ใช้ 10GB พาร์ทิชั่น B ใช้งาน 20GB พื้นที่ว่างจะถูกแสดงเป็น 70GB ไม่แยกระหว่างพาร์ทิชั่น
  • การโคลนไฟล์และไดเรกทอรี่ เช่น คือไฟล์ที่ถูกโคลนออกไปจะไม่ได้ใช้พื้นที่เพิ่มเติม และถ้าไฟล์ที่ถูกโคลนนั้นถูกแก้ไข ก็จะบันทึกเฉพาะส่วนที่ปรับเปลี่ยนเท่านั้น
  • snapshot คือส่วนที่อ่านได้อย่างเดียว ระบบปฏิบัติการสามารถใช้งานส่วนนี้ในการทำ backup ได้ และสามารถย้อนการเปลี่ยนแปลงกลับไปได้เช่นกัน
    Fast Directory Sizing allows APFS to quickly compute the total space used by a directory hierarchy, and update it as the hierarchy evolves.
  • Fast Directory Sizing คำนวณพื้นที่ทั้งหมดโดยใช้ลำดับชั้นของไดเรกทอรี่ และจะอัพเดตเมื่อลำดับชั้นมีการเติบโต
  • Atomic Safe-Save แบบดั้งเดิมสำหรับบันเดิลและไดเรกทอรี่ คือจะมีการเปลี่ยนชื่อใน transaction ครั้งเดียว

สำหรับรายละเอียดฉบับเต็มของ APFS สามารถอ่านได้จากที่มา โดยตอนนี้ APFS ได้เปิดทดสอบรุ่นพรีวิวสำหรับนักพัฒนาบน macOS Sierra แล้ว

ที่มา - Apple Developer, AppleInsider

Get latest news from Blognone

Comments

By: HMage
AndroidWindows
on 14 June 2016 - 09:11 #919205

Clone file แบบแตก branch เก็บ diff มันจะล้ำเกินไปแล้ว
ประหยัดที่สุดๆ แต่ share พื้นที่กันแบบนี้จะมีปัญหาเรื่อง security มั้ยนะ

By: iammeng
ContributoriPhoneAndroidWindows
on 14 June 2016 - 09:31 #919214 Reply to:919205
iammeng's picture

นี้มันเหมือน SVN เลยปะครับเนี่ย

By: langisser
In Love
on 14 June 2016 - 09:47 #919224 Reply to:919214

แว็บแรกคิดเหมือนกันเลย

By: Dino
iPhoneSymbian
on 14 June 2016 - 11:07 #919260 Reply to:919205
Dino's picture

มันก็คือ function de-duplicate ดีๆ นี่เอง

By: errin on 14 June 2016 - 09:15 #919208

น่าตื่นเต้นสุดใน WWDC เมื่อคืนแล้ว = ="

By: Axus
AndroidRed HatUbuntuIn Love
on 14 June 2016 - 09:19 #919210

ถ้ามี checksum อีกอันจะดีใจมากเลย

By: orbitalz
ContributorWindows PhoneAndroidUbuntu
on 14 June 2016 - 10:00 #919231

original English copy is still in the article

By: hisoft
ContributorWindows PhoneWindows
on 14 June 2016 - 10:38 #919247
hisoft's picture

อันนี้เจ๋งแฮะ

By: Bluetus
iPhone
on 14 June 2016 - 10:51 #919254
Bluetus's picture

เจ๋งๆ

By: tuttap
Android
on 14 June 2016 - 11:19 #919266
tuttap's picture

ย่อให้ยาวกว่า เดิม AFS ก็ พอ ละ ต้องมี P แต่ ช่างมันเถอะผมไม่ได้ ใช้

By: solarsunny on 14 June 2016 - 14:06 #919333 Reply to:919266

AFS = Andrew File System ครับ

By: Jonathan_Job
WriteriPhoneUbuntuWindows
on 14 June 2016 - 11:40 #919272
Jonathan_Job's picture

Btrfs?

By: dbpod
iPhoneUbuntuIn Love
on 14 June 2016 - 12:11 #919283

อ่านไม่รู้เรื่องเลย 55

สรุปว่ามันดีขึ้นใช่ไหมคับ :)

By: sonkub
AndroidWindows
on 14 June 2016 - 12:47 #919303

เจ๋งจริง
แต่เสียดายที่อยู่ในเมืองของ Apple
เพราะว่า โอกาสที่มันจะถูกนำไปพัฒนาต่อที่ platform อื่นๆมันแทบจะเป็นไปไม่ได้เลย

By: chettaphong
iPhoneWindows PhoneAndroidRed Hat
on 14 June 2016 - 13:21 #919316 Reply to:919303

Concept นี้มีมาพักใหญ่ ๆ แล้วครับ Apple น่าจะเอาที่มีอยู่และเป็น
Opensource เช่น btrfs, zfs ใน ที่เริ่มใช้ใน Linux, FreeBSD มาต่อยอดเป็น APFS
เพราะฉะนั้นไม่ตัองกังวลครับ

By: nrml
ContributorIn Love
on 14 June 2016 - 15:16 #919368 Reply to:919303
nrml's picture

อย่าปักธงหรือตั้งแง่ไปก่อนเลยครับ ลองดู Swift เป็นตัวอย่าง

By: osmiumwo1f
ContributorWindows PhoneWindows
on 14 June 2016 - 14:42 #919358

Fast Directory Sizing allows APFS to quickly compute the total space used by a directory hierarchy, and update it as the hierarchy evolves.

มันเกินมาหรือเปล่า เพราะมีตัวที่แปลภาษาไทยแล้วครับ
ปล. สงสัยว่าถ้าโคลนไฟล์แล้วมีการแก้ไขไฟล์ต้นฉบับ มันจะโคลนให้อัตโนมัติเพื่อกันไม่ให้มีผลกับไฟล์โคลนอื่นๆ ที่มาอ้างอิงกับไฟล์นี้หรือเปล่าครับ

By: hisoft
ContributorWindows PhoneWindows
on 14 June 2016 - 14:46 #919361 Reply to:919358
hisoft's picture

และถ้าไฟล์ที่ถูกโคลนนั้นถูกแก้ไข ก็จะบันทึกเฉพาะส่วนที่ปรับเปลี่ยนเท่านั้น

ไงครับ

By: osmiumwo1f
ContributorWindows PhoneWindows
on 14 June 2016 - 16:06 #919383 Reply to:919361

ที่ผมหมายถึงคือ สมมุติว่ามีไฟล์ O ที่เก็บ "1234" ไว้ถูกโคลนไปเป็นไฟล์ A แล้วแทนที่ "3" ในไฟล์ A ด้วย "_" ซึ่งเมื่อเปิดไฟล์ A หลังจากที่ถูกแก้แล้วก็จะเห็น "12_4" แล้วอยู่ๆ มีคนไปแก้ไฟล์ O ตรงๆ เลย โดยแทนที่ "12" ด้วย "__" ซึ่งเมื่อเปิดไฟล์ O หลังจากที่ถูกแก้แล้วก็จะเห็น "__34" APFS มันจะจัดการอย่างไรกับการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์ O เพราะถ้าเมื่อเปิดไฟล์ A หลังจากที่ไฟล์ O ถูกแก้ไขแล้วเห็น "___4" มันแปลว่าการแก้ไขไฟล์ต้นฉบับจะสร้างผลกระทบต่อไฟล์โคลน แต่ถ้าเมื่อเปิดไฟล์ A หลังจากที่ไฟล์ O ถูกแก้ไขแล้วยังเห็น "12_4" เหมือนเดิม แปลว่าการแก้ไขไฟล์ต้นฉบับจะไม่เกิดผลกระทบไฟล์โคลนครับ

By: hisoft
ContributorWindows PhoneWindows
on 14 June 2016 - 16:34 #919392 Reply to:919383
hisoft's picture

ผมเข้าใจว่าต้นฉบับจะต้องถูก freeze นะครับ แล้วโปรแกรมที่แก้ไขไฟล์ไม่ว่าจะเป็นดั้งเดิมหรือสำเนาก็จะบันทึกส่วนที่ปรับเปลี่ยนเหมือนกันทั้งหมด คือมี "1234" ค้างอยู่ในเครื่องไปเลย แล้วมีบันทึกส่วนที่ปรับเปลี่ยนสองชุดคือ 3->_ กับ 12->__ ครับ

ย้ำว่าผมเข้าใจว่ามันเป็นแบบนั้นนะครับ ของจริงอาจไม่ใช่

By: sirn
WriteriPhone
on 14 June 2016 - 18:23 #919409 Reply to:919383

อธิบายแบบรวบๆ จะได้เป็นประมาณนี้ครับ (สีเทาคือ block ข้อมูล)

No Description
(ผมเบลอตอนทำภาพ ข้างล่างต้องเป็น b.txt ไม่ใช่ c.txt)

สำหรับผู้ใช้ทั่วไปแล้ว copy-on-write ดียังไง สมมติว่าบันทึกไฟล์แล้วไฟดับระหว่างบันทึก ในกรณีที่ใช้ระบบเก็บข้อมูลแบบนี้ ไฟล์จะไม่พังครับ อย่างมากคือกลับไปเวอร์ชั่นก่อนหน้าที่เคยบันทึกไว้ได้สำเร็จ ส่วนข้อเสียของ copy-on-write คือทำให้มี fragment เยอะ ทำให้ไม่ค่อยเหมาะกับ disk ที่มีการ seek ครับ

By: Sh0ckWaveZer0
iPhoneWindows
on 28 March 2017 - 08:47 #977274
Sh0ckWaveZer0's picture

Hierachical >> Hierarchical