成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

警惕文件系統(tǒng)讀寫(xiě)陷阱

運(yùn)維 系統(tǒng)運(yùn)維
讀寫(xiě)性能永遠(yuǎn)是文件系統(tǒng)的最重要方面,是眾多文件系統(tǒng)存在的原因所在。但是一些基本的讀寫(xiě)保證卻是文件系統(tǒng)無(wú)法做到的,如原子性寫(xiě),斷電數(shù)據(jù)保護(hù),斷電數(shù)據(jù)跨界,增量寫(xiě)保護(hù)等等。本文主要從這些角度來(lái)深入對(duì)文件讀寫(xiě)的討論,大家千萬(wàn)不要誤入了文件系統(tǒng)讀寫(xiě)陷阱。

對(duì)文件讀寫(xiě)的支持一般由操作系統(tǒng)提供的統(tǒng)一接口,而操作系統(tǒng)抽象接口由文件系統(tǒng)實(shí)現(xiàn)具體操作。文件系統(tǒng)除了提供基本的讀寫(xiě)服務(wù),還需要對(duì)權(quán)限控制,元數(shù)據(jù)訪問(wèn),基本的錯(cuò)誤恢復(fù)進(jìn)行保證。而讀寫(xiě)性能永遠(yuǎn)是文件系統(tǒng)的最重要方面,是眾多文件系統(tǒng)存在的原因所在。但是一些基本的讀寫(xiě)保證卻是文件系統(tǒng)無(wú)法做到的,如原子性寫(xiě),斷電數(shù)據(jù)保護(hù),斷電數(shù)據(jù)跨界,增量寫(xiě)保護(hù)等等。本文主要從這些角度來(lái)深入對(duì)文件讀寫(xiě)的討論。

原子性寫(xiě)入

一般的硬盤(pán)最小的讀寫(xiě)單位是扇區(qū)(Sector),一般為512字節(jié),在閃存上(Flash Memory),最小的讀單位要遠(yuǎn)小于最小寫(xiě)單位。因此,首先讀寫(xiě)一個(gè)硬盤(pán)上的幾個(gè)字節(jié)都會(huì)獲得一個(gè)扇區(qū)大小的數(shù)據(jù),扇區(qū)大小也是影響文件系統(tǒng)的讀寫(xiě)的一個(gè)因素。另一方面,原子性寫(xiě)入是一個(gè)需要考慮的問(wèn)題,既然最小寫(xiě)單位是一個(gè)扇區(qū),那么當(dāng)寫(xiě)入一個(gè)文件一個(gè)扇區(qū)大小的數(shù)據(jù)時(shí),是否保證一定會(huì)寫(xiě)入一個(gè)扇區(qū)大小數(shù)據(jù)成功?如果在寫(xiě)入一個(gè)扇區(qū)一半的時(shí)候斷電,顯然寫(xiě)入就失敗了,硬盤(pán)是否保證斷電后仍然完成剩余寫(xiě)入是原子寫(xiě)的保證,這通常被現(xiàn)代硬盤(pán)驅(qū)動(dòng)通過(guò)自身的電源支持,一般來(lái)說(shuō),現(xiàn)代硬盤(pán)自身的電源足夠完成斷電后一個(gè)扇區(qū)的寫(xiě)入操作以此來(lái)保證原子寫(xiě)。

措施:當(dāng)硬件不保證原子性寫(xiě)入時(shí),通常需要應(yīng)用層采取一定手段來(lái)保證。可以采用兩段式提交的方式來(lái)完成,應(yīng)用層自身在寫(xiě)入文件時(shí)在文件首部保存原時(shí)間和修改時(shí)間,然后寫(xiě)入數(shù)據(jù)和修改“修改時(shí)間”并flush到硬盤(pán)上,當(dāng)成功寫(xiě)入后,再次改變文件原時(shí)間并并flush。這個(gè)可以保證如果在寫(xiě)入失敗時(shí),應(yīng)用層可以得知文件錯(cuò)誤并采取一定措施挽回,比如回滾機(jī)制。

增量寫(xiě)保證

增量寫(xiě)指的是當(dāng)需要append數(shù)據(jù)到一個(gè)文件或者創(chuàng)建一個(gè)新文件時(shí),當(dāng)調(diào)用操作系統(tǒng)提供的write操作進(jìn)行時(shí),通常是寫(xiě)入操作系統(tǒng)提供的寫(xiě)緩存中,由操作系統(tǒng)決定何時(shí)寫(xiě)入到硬盤(pán)上。這時(shí),一般的程序員都知道需要flush()或者fsync()來(lái)強(qiáng)制刷新到硬盤(pán)上。通常來(lái)說(shuō)操作系統(tǒng)會(huì)先需要擴(kuò)大文件大小再寫(xiě)入數(shù)據(jù)。這時(shí),如果在擴(kuò)大文件大小以后寫(xiě)入數(shù)據(jù)時(shí)斷電,這時(shí)填充文件增量空間的數(shù)據(jù)可能是“垃圾”數(shù)據(jù),當(dāng)重新啟動(dòng)程序時(shí)可能會(huì)得到一個(gè)已經(jīng)更新文件大小的充滿“垃圾”數(shù)據(jù)的文件。部分系統(tǒng)可能會(huì)實(shí)現(xiàn)先寫(xiě)入數(shù)據(jù)再擴(kuò)大文件大小這時(shí)就保證了“垃圾”數(shù)據(jù)不會(huì)出現(xiàn)。

措施:當(dāng)系統(tǒng)不支持增量寫(xiě)保證時(shí),應(yīng)用層保存一個(gè)文件大小,然后先寫(xiě)入數(shù)據(jù)并成功后,再修改文件大小來(lái)保證應(yīng)用層能得知增量寫(xiě)是否成功并采取回滾措施。

安全覆蓋寫(xiě)

指的是當(dāng)一個(gè)應(yīng)用向一個(gè)文件的指定地址范圍內(nèi)寫(xiě)入數(shù)據(jù)時(shí),不管是系統(tǒng)崩潰還是斷電都不會(huì)導(dǎo)致超出這個(gè)范圍的數(shù)據(jù)改變。也就是說(shuō),即使斷電和崩潰時(shí),可能發(fā)生錯(cuò)誤的只能是這個(gè)范圍內(nèi)的數(shù)據(jù)。考慮以下情景,當(dāng)我們向一個(gè)文件的頭兩個(gè)字節(jié)覆蓋寫(xiě)數(shù)據(jù)時(shí),但是操作系統(tǒng)會(huì)向硬盤(pán)寫(xiě)入一個(gè)最小寫(xiě)單位的數(shù)據(jù),這時(shí)如果發(fā)生斷電,當(dāng)重啟后,文件系統(tǒng)的錯(cuò)誤檢測(cè)系統(tǒng)可能會(huì)“自作聰明”的檢測(cè)到意外事故,然后讀出這個(gè)扇區(qū)并置零返回。

措施:每次寫(xiě)入文件時(shí)使用一個(gè)最小寫(xiě)單位的數(shù)據(jù)寫(xiě)入。

小結(jié)

大多數(shù)目前實(shí)現(xiàn)和硬件自身電影支持是可以保證上述陷阱不會(huì)發(fā)生,但是如果想要打造一個(gè)健壯的、多平臺(tái)的軟件時(shí),這些讀寫(xiě)陷阱是需要考慮。

責(zé)任編輯:黃丹 來(lái)源: wzxue.com
相關(guān)推薦

2012-06-15 09:45:29

imo即時(shí)通訊

2020-03-31 15:44:03

戴爾

2015-11-11 14:34:28

偷跑流量手機(jī)病毒

2016-01-11 10:56:42

BYOD自帶設(shè)備

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2011-01-13 14:10:30

Linux文件系統(tǒng)

2010-05-25 10:44:42

畢業(yè)生求職陷阱

2021-03-08 11:17:44

區(qū)塊鏈比特幣安全

2010-01-28 10:27:55

2019-09-20 10:04:45

Linux系統(tǒng)虛擬文件

2018-08-24 10:10:25

Linux文件系統(tǒng)技術(shù)

2009-12-25 10:18:23

2015-05-20 16:54:51

數(shù)字營(yíng)銷DSP

2021-05-31 07:50:59

Linux文件系統(tǒng)

2013-05-27 14:46:06

文件系統(tǒng)分布式文件系統(tǒng)

2021-06-06 16:55:22

Linux文件系統(tǒng)

2021-04-12 05:44:44

Linux文件系統(tǒng)

2012-09-12 14:40:19

Lustre文件系統(tǒng)

2024-02-06 12:05:43

2024-11-20 13:11:43

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产91在线精品 | 黄色播放 | 国产91在线播放 | 中文字幕成人av | 日韩福利在线观看 | 日韩美女一区二区三区在线观看 | 免费久久99精品国产婷婷六月 | 国产精品久久久久久久岛一牛影视 | 波多野结衣中文视频 | 91久久久久久久久久久久久 | 日本h片在线观看 | 成人免费网站 | 日本 欧美 国产 | 亚洲夜夜爽| 亚洲欧美日韩精品久久亚洲区 | 亚洲欧美aⅴ | 欧美黄在线观看 | 国产精品免费一区二区三区四区 | 国产精品久久久久久亚洲调教 | 亚洲精品丝袜日韩 | 免费国产一区 | 日韩一区二区三区视频 | 欧美极品在线观看 | 中文字幕亚洲精品 | 日本超碰 | 亚洲一区二区三区四区五区中文 | 久久伊人操| 久草网站 | 国产高清视频 | 中文字幕在线不卡 | 久久久久国色av免费观看性色 | 日韩综合在线 | 天天舔天天 | 日韩成人免费中文字幕 | 日韩精品一区二区三区四区视频 | 日本在线免费视频 | 亚洲成人午夜电影 | 久久久www成人免费精品 | 色综合久 | 亚洲国产aⅴ精品一区二区 免费观看av | 伦理二区 |