精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Apple新發(fā)布的APFS文件系統(tǒng)對(duì)用戶意味著什么

責(zé)任編輯:editor004

作者:大愚若智

2016-07-08 11:49:11

摘自:INFOQ

2016年WWDC大會(huì)上,Apple除了公布watchOS、tvOS、macOS以及iOS等一系列系統(tǒng)和軟件更新外,還公布了一個(gè)名為APFS(Apple File System)的文件系統(tǒng)。

2016年WWDC大會(huì)上,Apple除了公布watchOS、tvOS、macOS以及iOS等一系列系統(tǒng)和軟件更新外,還公布了一個(gè)名為APFS(Apple File System)的文件系統(tǒng)。

這一全新文件系統(tǒng)專門針對(duì)閃存/SSD進(jìn)行優(yōu)化(但依然可用于傳統(tǒng)機(jī)械硬盤),提供了更強(qiáng)大的加密、寫入時(shí)復(fù)制元數(shù)據(jù)、空間分享、文件和目錄克隆、快照、目錄大小快速調(diào)整、原子級(jí)安全存儲(chǔ)基元,以及改進(jìn)的文件系統(tǒng)底層技術(shù),將全面應(yīng)用于該公司旗下所有設(shè)備中。

  為什么不繼續(xù)使用HFS+?

HFS誕生于1985年,隨后在1998年發(fā)布的4GB硬盤版本G3 PowerMac中引入了改進(jìn)的HFS+文件系統(tǒng)。從1998年4GB容量的傳統(tǒng)HDD機(jī)械硬盤,到現(xiàn)在TB規(guī)模的SSD固態(tài)硬盤,HFS+已經(jīng)招架不住存儲(chǔ)領(lǐng)域的大量改變和創(chuàng)新。

經(jīng)過長期發(fā)展,HFS+針對(duì)不同類型的設(shè)備衍生出不同功能的多種分支,但它畢竟太老、太混亂了。更重要的是,該文件系統(tǒng)不具備當(dāng)今大多數(shù)企業(yè)所需要的一些基本功能,例如納秒級(jí)時(shí)間戳、校驗(yàn)、快照、稀疏文件等。Apple生態(tài)圈急需一種能夠取代HFS+的全新文件系統(tǒng)。

APFS應(yīng)運(yùn)而生!在解決HFS面臨的各種遺留問題同時(shí),還對(duì)HFS的所有變體進(jìn)行了統(tǒng)一,這是Apple從底層代碼開始從零打造的全新文件系統(tǒng)。

APFS概述

全新開發(fā)的APFS除了支持HFS+的全部功能外,還在以下方面有了突出的改進(jìn):

與使用32位文件ID的HFS+不同,APFS可支持64位索引節(jié)點(diǎn)(Inode)編號(hào),借此一個(gè)卷最多可存儲(chǔ)超過900億億個(gè)文件。HFS+只能同時(shí)對(duì)整個(gè)存儲(chǔ)設(shè)備的文件系統(tǒng)進(jìn)行初始化,APFS提供了一種可擴(kuò)展存儲(chǔ)塊分配程序(Extensible block allocator),可對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行延遲初始化(Lazy initialization),進(jìn)而大幅改善大容量卷的性能。APFS支持三種模式的加密:不加密;適用于元數(shù)據(jù)和用戶數(shù)據(jù)的單密鑰加密;以及適用于元數(shù)據(jù)、文件,甚至文件中特定部分的多密鑰加密。

此外APFS還包含其他改善和新功能,例如稀疏文件、改進(jìn)的TRIM操作,內(nèi)建對(duì)擴(kuò)展屬性的支持等。

脫胎換骨的APFS已經(jīng)具備與BSD HAMMER、Linux btrfs,或OpenZFS等現(xiàn)代化文件系統(tǒng)不相上下的功能和特性。

數(shù)據(jù)加密

安全與隱私是APFS的設(shè)計(jì)基礎(chǔ)。Apple的很多設(shè)備和操作系統(tǒng)早已具備加密功能,OS X 10.7 Lion開始提供全磁盤加密功能;iOS 4開始可通過專用數(shù)據(jù)保護(hù)技術(shù)將每個(gè)文件使用一個(gè)專用密鑰進(jìn)行加密。APFS對(duì)這兩種功能進(jìn)行整合,為文件系統(tǒng)元數(shù)據(jù)提供了一種統(tǒng)一的加密模式。

加密是APFS原生支持的特性,用戶可以針對(duì)每個(gè)卷選擇下列任何一種加密方法:不加密,統(tǒng)一用一個(gè)密鑰加密,或多密鑰加密(針對(duì)每個(gè)文件使用專用密鑰加密,同時(shí)針對(duì)敏感的元數(shù)據(jù)使用一個(gè)單獨(dú)的密鑰)。多密鑰加密可確保哪怕設(shè)備物理安全受到威脅,依然可以保障用戶數(shù)據(jù)的完整性。取決于具體硬件,APFS加密可使用AES-XTS或AES-CBC算法。

這種加密機(jī)制還實(shí)現(xiàn)了一個(gè)額外的功能:更為快速的數(shù)據(jù)擦除。通常情況下當(dāng)用戶從設(shè)備中刪除文件后,可以通過市面上提供的很多(免費(fèi)或收費(fèi)的)反刪除軟件找回刪掉的內(nèi)容。為避免這種情況,以往如果需要?jiǎng)h除包含機(jī)密信息的文件,或需要將存儲(chǔ)過私密數(shù)據(jù)的設(shè)備退役給他人使用,必須首先使用抹掉功能擦除存儲(chǔ)設(shè)備,并可能要將這一過程執(zhí)行多遍。取決于存儲(chǔ)設(shè)備容量,整個(gè)過程將耗費(fèi)極多時(shí)間。

對(duì)于使用APFS文件系統(tǒng)的存儲(chǔ)設(shè)備,在啟用加密功能后,安全擦除的過程將變得大為簡便和快捷,不再需要耗費(fèi)大量時(shí)間多次給存儲(chǔ)設(shè)備填充隨機(jī)數(shù)據(jù),只需要?jiǎng)h除加密所用的密鑰即可。

快照和備份功能

快照功能可將文件系統(tǒng)的狀態(tài)“固定”在創(chuàng)建快照的那一刻,并可在保留固定狀態(tài)的同時(shí)繼續(xù)訪問和修改文件系統(tǒng)。這種技術(shù)可以只記錄新增或改動(dòng)的數(shù)據(jù)塊,因此可以為文件系統(tǒng)創(chuàng)建多個(gè)快照,而無需擔(dān)心會(huì)占用大量存儲(chǔ)空間。備份工具(例如Time Machine)通常會(huì)使用該功能記錄自從上次備份之后文件系統(tǒng)的改動(dòng)情況,并可用于在不打斷用戶操作的前提下對(duì)數(shù)據(jù)進(jìn)行更為高效的備份。

由于不支持目錄硬鏈接,APFS暫不兼容Time Machine,希望以后APFS能夠針對(duì)Time Machine提供更高效的序列化機(jī)制。本屆WWDC上,APFS的開發(fā)經(jīng)理Eric Tamura在演示APFS的快照功能時(shí)使用了一個(gè)尚未包含在Beta版macOS Sierra中的工具,同時(shí)根據(jù)Apple的介紹,目前尚未提供用于訪問快照功能的API,期待在后續(xù)版本中這個(gè)技術(shù)能夠盡快完善起來。

空間共享

APFS包含一個(gè)名為“空間共享”的新功能,借助該功能,多個(gè)文件系統(tǒng)可以共享同一個(gè)物理卷上的同一塊底層可用空間。也就是說,設(shè)備上的一個(gè)APFS“容器”內(nèi)部可以包含多個(gè)“卷”(文件系統(tǒng))。HFS+需要為每個(gè)文件系統(tǒng)預(yù)先分配固定大小的容量,這種做法較為“僵硬”,而APFS的空間共享功能可以讓用戶在無需重分區(qū)的情況下動(dòng)態(tài)、靈活地?cái)U(kuò)大或縮小卷容量。

在這樣的設(shè)計(jì)下,APFS容器內(nèi)的每個(gè)卷都會(huì)顯示同等的可用空間容量,而所顯示容量會(huì)等同于該容器的可用存儲(chǔ)空間總量。例如,假設(shè)有個(gè)容量100GB的APFS容器,其中包含已用10GB容量的卷A和已用20GB容量的卷B,卷A和卷B都會(huì)顯示自己有70GB(100GB-10GB-20GB)的可用容量。

存儲(chǔ)空間使用效率

現(xiàn)代化的文件系統(tǒng)往往會(huì)通過壓縮和去重(Deduplication)等方式減小文件占用的空間量。壓縮很好理解,去重是指找出大量文件中相同的數(shù)據(jù)塊,并只將這樣的塊存儲(chǔ)一次,在訪問文件時(shí),會(huì)根據(jù)實(shí)際情況動(dòng)態(tài)“拼裝”出最終的文件。這樣的功能最適合保存大量用戶文件或大量虛擬機(jī)映像的服務(wù)器環(huán)境。

APFS可以用恒定的速度對(duì)多個(gè)文件和目錄創(chuàng)建副本。舉例來說,如果要在同一個(gè)文件系統(tǒng)(或同一個(gè)容器)內(nèi)部復(fù)制文件,實(shí)際上并不需要為數(shù)據(jù)創(chuàng)建副本,只需要對(duì)文件的元數(shù)據(jù)進(jìn)行適當(dāng)?shù)母戮涂梢宰尨疟P上存儲(chǔ)的數(shù)據(jù)實(shí)現(xiàn)“共享”,此時(shí)相同的文件“實(shí)際體積”不變,但產(chǎn)生了兩個(gè)副本,對(duì)任何一個(gè)副本進(jìn)行改動(dòng)則需要為其分配新的存儲(chǔ)空間(這種方式也叫做“寫入時(shí)復(fù)制”)。

文件基本可以分為下列三種類別:

每次需要全面覆蓋的文件,例如圖片、Office 文檔、視頻等可以“附加”新內(nèi)容的文件,例如日志文件使用基于記錄結(jié)構(gòu)的文件,例如數(shù)據(jù)庫文件

對(duì)大部分普通用戶來說,接觸最多的可能就是第一種文件。在APFS的幫助下,可以將文檔(例如體積為10MB)復(fù)制多次,并借助空間共享功能節(jié)約存儲(chǔ)空間的用量,但只要改動(dòng)過其中任何一個(gè)副本,就需要為這個(gè)副本分配10MB空間。

這樣的“克隆”有可能給用戶造成一定的困擾。既然復(fù)制的文件不占用空間,那刪除這些文件也不會(huì)釋放出空間。

另外還需要注意一點(diǎn):在Finder內(nèi)復(fù)制文件會(huì)產(chǎn)生這樣可以節(jié)約空間的“克隆”,但命令行中的cp命令還會(huì)使用以往的方式為文件創(chuàng)建完整的副本。

性能

APFS專門針對(duì)閃存進(jìn)行了優(yōu)化。SSD雖然可以模擬傳統(tǒng)機(jī)械硬盤的“塊”,但底層技術(shù)與機(jī)械硬盤截然不同。SSD底層的管理工作是由一種名為閃存轉(zhuǎn)換層(FTL,F(xiàn)lash Translation Layer)的軟件負(fù)責(zé)處理的。FTL與文件系統(tǒng)極為類似,可以在塊地址和介質(zhì)內(nèi)部的位置之間創(chuàng)建虛擬映射(轉(zhuǎn)換)。整個(gè)堆棧,包括SSD、FTL,以及文件系統(tǒng)都由Apple控制,可以更有針對(duì)性地對(duì)不同組件進(jìn)行優(yōu)化。

此外APFS還提供了對(duì)TRIM的支持。TRIM是ATA協(xié)議中的一個(gè)命令,可以讓文件系統(tǒng)告訴SSD(其實(shí)是指示SSD中的FTL)某些空間是空閑的。可用空間越多,SSD的性能表現(xiàn)會(huì)越好,甚至大部分SSD所擁有的存儲(chǔ)容量會(huì)超過標(biāo)稱值。

舉例來說,假設(shè)有一個(gè)1TB容量的SSD,顯示的可用空間總量為931GB。在有更多可用空間的情況下,F(xiàn)TL可以犧牲空間利用率換回更高性能和更長壽命。但TRIM的問題在于,只有在存在可用空間的情況下這個(gè)功能才會(huì)有用,如果磁盤即將裝滿,TRIM不會(huì)為你帶來任何效果。

性能方面,APFS的延遲也有了大幅改善。APFS可以通過I/O QoS(服務(wù)質(zhì)量)對(duì)不同的訪問請求劃分優(yōu)先級(jí),將用戶可以立刻察覺的操作和后臺(tái)活動(dòng)區(qū)分對(duì)待。

數(shù)據(jù)完整性

確保數(shù)據(jù)完整性,可以說這是任何文件系統(tǒng)的首要目標(biāo)。我把數(shù)據(jù)交給你,你別弄丟了,也別隨意修改。但如果這一切真的能實(shí)現(xiàn),我們又為什么要“備份”呢?為確保數(shù)據(jù)安全,文件系統(tǒng)通常會(huì)采取一系列機(jī)制。

冗余

大部分Apple設(shè)備只有一個(gè)存儲(chǔ)設(shè)備(即一個(gè)邏輯SSD),因此RAID之類的做法毫無意義。此時(shí)冗余是通過更底層的組件實(shí)現(xiàn)的,例如Apple RAID、硬件RAID控制器、SAN,甚至“單一”存儲(chǔ)設(shè)備本身。

但是也要注意,大部分可支持APFS的Apple設(shè)備中的SSD實(shí)際上是由多個(gè)或多或少相互獨(dú)立的NAND芯片組成的。一些高端SSD會(huì)在內(nèi)部實(shí)施一定的數(shù)據(jù)冗余,但需要付出容量和性能雙雙降低的代價(jià)。

此外APFS使得“復(fù)制文件”這一用戶最常用的實(shí)現(xiàn)本地?cái)?shù)據(jù)冗余的方法也失去了作用。APFS中復(fù)制的文件實(shí)際上只是對(duì)文件創(chuàng)建了輕量級(jí)克隆,實(shí)際數(shù)據(jù)并沒有重復(fù)保存,底層設(shè)備的故障會(huì)導(dǎo)致所有“副本”受損。

  絕對(duì)一致性

計(jì)算機(jī)系統(tǒng)在任何時(shí)候都可能出故障:崩潰、Bug、斷電等…… 文件系統(tǒng)必須能夠預(yù)見到這種情況并從故障中順利恢復(fù)。遇到這種情況,以前可能需要嘗試著用專門的工具在系統(tǒng)啟動(dòng)前檢查并修復(fù)文件系統(tǒng)(例如使用fsck)。較為現(xiàn)代化的系統(tǒng)會(huì)使用某些“始終一致”的格式,或?qū)⒉灰恢碌目赡鼙M量降低,以避免耗費(fèi)大量時(shí)間執(zhí)行完整的fsck檢查。例如ZFS就可以在磁盤上構(gòu)建一個(gè)新狀態(tài),然后通過一次原子操作從之前的狀態(tài)以原子級(jí)方式過度到新狀態(tài)。

覆蓋寫入數(shù)據(jù)是最容易造成不一致的操作。如果文件系統(tǒng)需要覆寫文件的多個(gè)區(qū)塊,有一定可能遇到一些區(qū)塊已經(jīng)代表新狀態(tài),但一些區(qū)塊依然代表舊的狀態(tài)。為避免這種問題,可以使用上文提到的寫入時(shí)復(fù)制這一方式,首先分配新區(qū)塊,隨后釋放舊區(qū)塊使其可被再次使用,而不需要就地修改數(shù)據(jù)。APFS實(shí)施了一種“全新的寫入時(shí)復(fù)制元數(shù)據(jù)體系”,這種方式的新穎之處在于,APFS并未使用ZFS機(jī)制復(fù)制已更改用戶數(shù)據(jù)的所有元數(shù)據(jù),只需要對(duì)文件系統(tǒng)結(jié)構(gòu)進(jìn)行一次原子更新即可實(shí)現(xiàn)。

校驗(yàn)

校驗(yàn)是一種針對(duì)數(shù)據(jù)進(jìn)行的摘要會(huì)匯總,可用于檢測(和糾正)數(shù)據(jù)錯(cuò)誤。APFS會(huì)對(duì)自己的元數(shù)據(jù),而非用戶數(shù)據(jù)進(jìn)行校驗(yàn)。這種對(duì)元數(shù)據(jù)進(jìn)行校驗(yàn)的做法理由非常充分:大部分元數(shù)據(jù)都與用戶數(shù)據(jù)無關(guān)(因此校驗(yàn)不會(huì)耗費(fèi)太多存儲(chǔ)空間),而丟失元數(shù)據(jù)會(huì)有極大可能造成用戶數(shù)據(jù)的丟失。距離來說,假設(shè)某個(gè)頂層目錄的元數(shù)據(jù)出錯(cuò),那么磁盤上的所有數(shù)據(jù)都有可能無法訪問。也正是因此,ZFS會(huì)對(duì)元數(shù)據(jù)創(chuàng)建副本(甚至對(duì)頂層元數(shù)據(jù)創(chuàng)建三重副本)。

但是完全不對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn),這種做法似乎更有趣。WWDC上的APFS工程師稱,Apple設(shè)備的存儲(chǔ)具備強(qiáng)大的ECC糾錯(cuò)保護(hù)。NAND閃存SSD和磁介質(zhì)機(jī)械硬盤都可以使用冗余數(shù)據(jù)檢測和糾正錯(cuò)誤。Apple工程師認(rèn)為,Apple設(shè)備通常不會(huì)遇到數(shù)據(jù)錯(cuò)誤。NAND會(huì)使用額外的數(shù)據(jù),例如每4KB頁使用額外的128字節(jié)數(shù)據(jù),借此檢測和糾正數(shù)據(jù)錯(cuò)誤。設(shè)備本身的誤碼率已經(jīng)足夠低,可以認(rèn)為設(shè)備整個(gè)生命周期內(nèi)都不會(huì)出現(xiàn)錯(cuò)誤。還有一些設(shè)備錯(cuò)誤可以通過文件系統(tǒng)的冗余機(jī)制避免。SSD中包含大量組件,而大部分消費(fèi)類產(chǎn)品中的SSD很少包含端到端的ECC保護(hù),因此可能導(dǎo)致數(shù)據(jù)傳輸過程中出現(xiàn)錯(cuò)誤。SSD固件中也可能包含導(dǎo)致數(shù)據(jù)丟失的Bug。

Apple對(duì)于供應(yīng)商的設(shè)備質(zhì)量測試可能是最嚴(yán)格的,用戶可以相信Apple產(chǎn)品使用了最高質(zhì)量的組件。Apple工程師認(rèn)為,此類設(shè)備的用戶無需擔(dān)心比特衰減(Bit Rot,逐漸老化的數(shù)據(jù)會(huì)慢慢喪失完整性)的問題,但如果軟件本身無法檢測錯(cuò)誤,用戶當(dāng)然不知道設(shè)備的具體情況如何。價(jià)值數(shù)百萬美元的存儲(chǔ)陣列所用的ZFS也可能出現(xiàn)數(shù)據(jù)錯(cuò)誤,那么Apple設(shè)備中所用的TLC NAND芯片(最便宜的NAND芯片類型)憑什么就不會(huì)出錯(cuò)?別忘了就在不久前某些大容量iPhone 6才剛剛因?yàn)榇鎯?chǔ)問題而召回。

總結(jié)

Apple是否能完全用APFS取代HFS+,這一點(diǎn)還不確定,不過他們很可能已經(jīng)到了這樣一個(gè)轉(zhuǎn)折點(diǎn):繼續(xù)維護(hù)并改進(jìn)過了“而立之年”的軟件,這樣的做法可能比全新開發(fā)一套新的軟件成本更高。APFS就是這樣一種權(quán)衡之后的產(chǎn)物。

根據(jù)Apple在WWDC上的介紹,APFS的核心設(shè)計(jì)目標(biāo)可能是這樣的:

讓所有消費(fèi)者(筆記本、手機(jī)、手表等)滿意將數(shù)據(jù)加密作為頭等要?jiǎng)?wù)為現(xiàn)代化備份方式提供快照功能

這些目標(biāo)可以讓所有Apple用戶獲益,從WWDC上的演示可知,APFS似乎已經(jīng)開始逐漸走上正軌(盡管測試版的macOS Sierra似乎還有一段路要走)。

APFS開發(fā)文檔中針對(duì)“開源”有一個(gè)小注解:“開源的實(shí)現(xiàn)目前尚不可用”。其實(shí)很多人并不指望APFS能夠開源。但如果APFS能夠成為世界領(lǐng)先的文件系統(tǒng),用戶肯定還是希望在Linux和FreeBSD中也能使用,也許到時(shí)候Microsoft也能停止在ReFS方面的研發(fā)。APFS不針對(duì)用戶數(shù)據(jù)進(jìn)行校驗(yàn),沒有提供數(shù)據(jù)冗余機(jī)制,這些確實(shí)讓人感覺遺憾,畢竟數(shù)據(jù)完整性應(yīng)該是任何文件系統(tǒng)的頭等要?jiǎng)?wù),而無論這樣的文件系統(tǒng)將用于手表或手機(jī),或者服務(wù)器,文件完整性問題都應(yīng)該重視起來。

目前APFS已經(jīng)以開發(fā)者預(yù)覽版的方式通過OS X 10.12(macOS Sierra)提供給用戶,預(yù)計(jì)將在2017年正式發(fā)布。

若要嘗試該功能,可在升級(jí)至macOS 10.12后通過新增的hdiutil命令行工具創(chuàng)建APFS卷:

$ hdiutil create -fs APFS -size 1GB foo.sparseimage

目前的測試版APFS有一些局限:

無法用于啟動(dòng)磁盤。文件和目錄名稱大小寫敏感。無法用于Time Machine、FileVault或Fusion驅(qū)動(dòng)器。現(xiàn)有第三方工具需要更新才能支持APFS。APFS文件系統(tǒng)的卷無法被OS X 10.11 Yosemite以及更早的版本識(shí)別。APFS卷可以通過SMB網(wǎng)絡(luò)文件共享協(xié)議共享,AFP協(xié)議已棄用,無法用于共享APFS卷。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 伊宁县| 喀喇| 南川市| 伊春市| 东乌珠穆沁旗| 离岛区| 浦县| 赫章县| 清丰县| 格尔木市| 敦煌市| 乌什县| 温宿县| 温泉县| 松阳县| 鸡西市| 丹凤县| 柘城县| 吉隆县| 郧西县| 乐昌市| 宁河县| 乡城县| 右玉县| 亳州市| 乐平市| 无棣县| 南宁市| 大同县| 永昌县| 沙坪坝区| 唐河县| 延庆县| 横峰县| 芷江| 吉水县| 谷城县| 余庆县| 潼南县| 唐河县| 广昌县|