1:簡單說說磁碟以及分割槽的構成,我們知道,磁碟由盤面,磁頭,磁臂構成,假設磁碟盤面上只有一層,我們將盤面一圈圈的劃分,然後以原點為中心,連一條線出去,某個圈上被截出來的部分就是扇區,整個乙個圈就是乙個柱面,我們經常說的分割槽其實就是以柱面為單位的,0磁軌1扇區(乙個扇區一般情況下為512位元組)的mbr記錄了作業系統核心檔案的位置,佔446位元組,然後分割槽表占用66位元組.
2:說說檔案系統,我覺得它存在的必要性就是方便我們作業系統能以一種他自己的方式去處理資料,windows的檔案系統為ntfs,u盤有fat,linux有ext2,ext3,ext4等,叫做(linux second extended file system),下面我們說說linux檔案系統ext2的管理方式,首先介紹三個概念:
1:data block:就是我們資料實際儲存的地方。我們的磁碟是被在格式化的時候確定block的大小的,一般為1,2,4k,正常情況下乙個扇區2:inode:記錄我們某個檔案的儲存資訊,乙個檔案乙個inode,乙個inode儲存的資訊有此檔案對應的data block號碼。
3:super block:記錄的是我們磁碟的inode使用量,剩餘量等。
的大小為512個位元組,也就是大概0.5k左右,所以block為1k就是乙個block為兩個扇區,
同理往上繼續計算就ok,block的大小實際上用dumpe2fs
命令就可以檢視,它可以反映
很多的資訊,好,先不著急,跳出去,我們繼續以一種俯視的眼光看待我們的磁碟,我
們發現實際上格式化之後所有的區域都被劃分成了扇區,但是我已經說過磁碟讀取的時
候最小單位並不是扇區,而是」塊」,並且注意:我們的磁碟是被分成block組的,實際上
也是為了解決查詢迅速的問題,要是inode中記錄的block位置太散,那豈不是要將整個分
區遍歷一遍,不太好吧,所以就像我們分割槽的目的是不想把磁碟遍歷一遍一樣,我們的
block分組的方式初衷也是一樣的,就是為了更加集中每一塊block的大小,以便於提高我
們查詢的速度。下面我們走進去乙個block group 的世界看看:
實際上我們只要能理解乙個block group中的內容,別的都一樣,我們就將這乙個block
group看做一次磁碟或者乙個分割槽,它中包含的內容有:
2:檔案系統描述(file system description):描述每個block group的開始與結束的block號碼,以及每個區段(superblock,bitmap等)分別介於哪乙個block之間,
3:塊對照表(block bitmap):它反應的是具體的我們目前block的詳細資訊,從它中我們可以知道哪個block是空的,可以繼續存資料,同樣,刪除檔案時候,原本的block也要還回來。
4:inode對應表:不用多說,當然是我們現在系統中inode的使用情況。
以上的四個東西都是記錄了乙個資料,要說詳細的話,比如super block中記錄了block使用了100個,那我從block bitmap中可以知道到底是哪100個被使用,但是這100個的具體資訊就要牽扯到我們下面要介紹的這個東西:inode table : 它記錄了具體的資訊,就像乙個桌子,上面擺放著我所有的inode,然後每個中對應哪些block都一目了然,那我們看看某個具體的block中記錄的是什麼
5:我們用stat 命令檢視到的資訊,實際上我們的系統讀檔案的時候是找inode的,由於每個檔案都對應乙個inode,找到inode才能讀出block的內容,那麼乙個檔案對應乙個inode,這就表示我們的系統能建立的檔案數目與我們的inode數量有關,所以即使我們的某個block group 有空的block,但是沒有inode,那也是不能新建檔案的。
6:data block:那就是我們實際記錄資料的地方。
7:inode與目錄樹的關係:
下面我說說inode與目錄樹的關係,我們的ext2檔案系統正常情況下每當我們新建立乙個目錄,系統就會為我們自動分配乙個inode和乙個block,inode用來記錄目錄的建立資訊,許可權以及前面提到的分配的block號碼等東西,block就會記錄我們的目錄中檔名和檔案的inode,檔案的inode記錄的是檔案的具體許可權等資訊和檔案資料所占用的block,如果這乙個block不夠,那就繼續在拿乙個block使用,所以我們一般ls -ld檢視乙個目錄的時候,所查到的大小一般為1,2,4k的整數倍。
8:繼續說inode與目錄樹的讀取,實際上我們已經可以發現我們的系統中無論是讀取檔案還是讀取目錄,都是先讀取inode的內容,所以我們的目錄中要是有x許可權,才能讀取我們目錄的inode,知道許可權資訊,再讀取block,才能看到具體有什麼檔案,在看檔案的inode,才知道你有沒有r許可權讀檔案。
9:檔案系統的大小與磁碟的讀取效能:
並不是我們將乙個分區分的越大越好,原因是我們的block塊是隨意選取位置的,如果分散的比較厲害,那麼肯定會影響查詢速度。
10:日誌檔案系統:正常情況下,我們將資料寫入磁碟的過程中,首先更新block塊的內容,然後更新inode的內容,然後更新inode tabel和super block,要是我們在寫資料進磁碟的過程中一不小心斷電了,沒有更新inode tabel和super block的內容,那下一次開機雖然可以同步,但是比較麻煩,正常情況下需要將磁碟全部對比一遍,要是是日誌檔案系統,那麼就可以將寫入的資訊寫進這個日誌檔案系統中,它是乙個128m的塊,下次開啟檢測的時候檢測的範圍就小多了。
11:再簡單描述下vfs,它將各種檔案系統全部處理,然後提供統一介面。實際上vfs很強大。
Linux磁碟與檔案系統管理
一,在安裝linux時總會出現管理物理分割槽的選項,其中就有lvm,稱為邏輯卷管理器,可彈性更改系統容量。1.物理卷 pv,是lvm最底層的物理卷,通過fdisk命令將system id調整成8e lvm的識別符號 再用prcreate命令將它轉成pv,2,卷使用者組 vg,其實就是所謂的lvm大磁...
Linux磁碟與檔案系統管理
1.ext2檔案系統 1.1 ext2檔案系統的主要資訊有 superblock 記錄此檔案系統的整體資訊,包括inode block的總量 使用量 剩餘量,以及檔案系統的格式與相關資訊等。inode 記錄檔案的屬性,乙個檔案占用乙個inode,同時記錄此檔案的資料所在的block號碼。block ...
Linux 磁碟與檔案系統管理
乙個分割槽槽就是乙個檔案系統,隨著lvm的應用,乙個分割槽槽可以變為多個檔案系統,也可以組合多個分割槽槽為乙個檔案系統。所以現在講乙個可被掛載的資料為乙個檔案系統。檔案系統通常會將這兩部份的資料分別存放在不同的區塊,許可權與屬性放置到inode 中,至於實際資料則放置到data block 區塊中。...