day25學習筆記(4月7日)
磁盤管理二(inode、軟鏈接、硬鏈接、Raid磁盤冗餘陣列)
文件屬性的查看
方法一:
ls -l filename
方法二:
stat filename
inode是什麼
操作系統中專門用於管理和存儲文件的信息軟件成為文件系統
一個新的磁盤,格式化文件系統後,就有了2個存儲空間。
一個叫做inode存儲空間,存儲設備上所有文件名,對應的元數據信息(通過stat命令查看文件的屬性信息)
一個叫做block存儲空間,存儲設備上所有的文件的內容和數據
inode數量和block數量由磁盤的容量決定
linux文件系統存儲的文件其實分為兩部分【元數據】+【文件內容】
- 元數據(存儲元數據信息的空間,被稱之為Inode)
就是文件的屬性信息,可以通過stat命令查看,包括文件名、文件大小、創建信息、修改信息等
- 文件內容(存儲文件數據的空間,被稱之為block)
文件內容數據存放在扇區(sector),是磁盤的最小存儲單位(512bytes),多個相鄰的扇區就稱為block塊,文件系統最小的讀取單位是8個扇區即block塊(8*512butes=4096bytes=4KB)
Linux讀取文件內容的過程
文件名 > inode編號 > block
表面上,用户通過文件名,打開文件。實際上,系統內部這個過程分成三步:首先,系統找到這個文件名對應的inode號碼;其次,通過inode號碼,獲取inode信息;最後,根據inode信息,找到文件數據所在的block,讀出數據。
inode號的查詢
命令如下:
ls -i filename
為什麼linux要設計inode
理解inode,要從文件儲存説起。
文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。
操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。
文件數據都儲存在"塊"中,那麼很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為"索引節點"。
每一個文件都有對應的inode,裏面包含了與該文件有關的一些信息。
inode存儲的內容
* 文件的字節數
* 文件擁有者的User ID
* 文件的Group ID
* 文件的讀、寫、執行權限
* 文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間。
* 鏈接數,即有多少文件名指向這個inode
* 文件數據block的位置
inode的作用
df -h
查看磁盤block空間的使用情況,如果看到分區快滿了,可以去刪除大容量的文件
df -i
inode存儲文件屬性的
當機器上有大量的無用的小文件,空文件,白白消耗inode數量
查看磁盤分區inode空間的使用情況
如果可用的不多的,刪除大量的4kb小文件即可
因為它們真用了太多的無效inode編號
df -h看到磁盤還是有空間,但是寫入數據
系統提示no space for disk
雖然還有block空間可以存數據,但是inode數量已經用完
文件夾和文件的關係
目錄是一個特殊的文件,目錄保存的是當前目錄下的文件名字
簡單説,文件夾就是方便人類記憶文件存在哪、然後通過這個文件名嗎,找到對應的文件inode號
inode號裏記錄了文件數據所處的block位置,最終訪問到數據
block是什麼
block是linux實際存儲數據的空間,是8個連續的扇區,(8*512bytes=4KB)
單個大文件需要用多個block來存儲
特別小的文件即使不滿足4KB,也只能按照4KB計算。
1 block =4kb
刪除文件原理
軟連接
Linux系統中的軟連接可以理解為Windows下的快捷方式。
軟鏈接文件儲存的是源文件的路徑。
創建軟連接 ln -s參數去創建軟連接
↓
當訪問軟連接文件,其實是
↓
訪問到源文件的路徑,源文件的文件名
↓
訪問源文件的inode編號
↓
inode找到block,訪問到數據
軟鏈接特點
1.軟連接文件的inode號和源文件不同,作用是存儲源文件的路徑
2.命令ln -s創建
3.刪除普通軟連接,不影響源文件
4.刪除源文件,軟連接找不到目標,報錯提示。
5.可以操作軟鏈接完成對源文件的修改。
硬鏈接
硬鏈接,就是一個數據(block)被多個相同inode號的文件指向。
創建語法
ln 源文件 目標文件
硬鏈接的特點
1.可以對已存在的文件做硬鏈接,該文件的硬鏈接數,至少是1,為0就表示文件不存在
2.硬鏈接的文件,inode相同,屬性一致
3.只能在同一個磁盤分區下,同一個文件系統下創建硬鏈接
4.不能對文件夾創建硬鏈接,只有文件可以
5.刪除一個硬鏈接,不影響其他相同inode號的文件
6.文件夾的硬鏈接,默認是2個,以及是2+(第一層子目錄總數)=文件夾的硬鏈接數量
7.可以用任意一個硬鏈接作為入口,操作文件(修改的其實是block中的數據)
8.當文件的硬鏈接數為0時,文件真的被刪除
Raid磁盤冗餘陣列
RAID,全稱為Redundant Arrays of Independent Drives,即磁盤冗餘陣列。
這是由多塊獨立磁盤(多為硬盤)組合的一個超大容量磁盤組。
計算機一直是在飛速的發展,更新,整體計算機硬件也得到極大的提升,由於磁盤的特性,需要持續、頻繁、大量的讀寫操作,相比較於其他硬件設備,很容易損壞,導致數據丟失。
硬raid和軟raid
硬raid
1、通過用硬件來實現RAID功能的就是硬RAID,獨立的RAID卡,主板集成的RAID芯片都是硬RAID。
2、RAID卡就是用來實現RAID功能的板卡,通常是由I/O處理器、硬盤控制器、硬盤連接器和緩存等一系列零組件構成的。
3、不同的RAID卡支持的RAID功能不同。支持RAlD0、RAID1、RAID4、RAID5、RAID10不等。
軟raid
軟RAID運行於操作系統底層,將SCSI或者IDE控制器提交上來的物理磁盤,虛擬成虛擬磁盤,再提交給管理程序來進行管理。軟RAID有以下特點:
佔用內存空間
佔用CPU資源
如果程序或者操作系統故障就無法運行
區別:
1、軟件RAID額外消耗CPU資源,性能弱
2、硬件RAID更加穩定,軟件RAID可能造成磁盤發熱過量,造成威脅
3、兼容性問題,軟件RAID依賴於操作系統,硬件RAID更勝一籌
raid 0
raid0磁盤總容量
將兩個或兩個以上相同型號、容量的硬盤組合,磁盤陣列的總容量便是多個硬盤的總和。
raid0特點
- 至少需要兩塊磁盤
- 數據條帶化分佈到磁盤,高讀寫性能,100%存儲(空間利用率)
- 數據沒有冗餘策略,一塊磁盤故障,數據將無法恢復
- 應用場景:
- 對性能要求高但對數據安全性和可靠性要求不高的場景,比如音頻、視頻等的存儲。
備註
條帶化技術就是一種自動的將 I/O 的負載均衡到多個物理磁盤上的技術
磁盤條帶化是指利用條帶化技術就是將一塊連續的數據分成很多小部分並把它們分別存儲到不同磁盤上去。
raid 1
由於raid 0的特性,數據依次寫入到各個物理硬盤中,數據是分開放的,因此損壞任意一個硬盤,都會對完整的數據破壞,對於企業數據來説,肯定是不允許。
Raid 1技術,是將兩塊以上硬盤綁定,數據寫入時,同時寫入多個硬盤,因此即使有硬盤故障,也有數據備份。
raid1特點
- 至少需要2塊磁盤
- 數據鏡像備份寫到磁盤上(工作盤和鏡像盤),可靠性高,磁盤利用率為50%
- 讀性能可以,但寫性能不佳,寫入數據要同步,因此速度很慢。
- 一塊磁盤故障,不會影響數據的讀寫,因為是鏡像盤,冗餘性好,只要有一塊是好的,數據還是玩轉的。
- RAID 1應用場景:
- 對數據安全可靠要求較高的場景,比如郵件系統、交易系統等。
raid 10
raid 10特點:
RAID10是raid1+raid0的組合- 至少需要4塊磁盤
- 兩塊硬盤為一組先做raid1,再將做好raid1的兩組做raid0
- 兼顧數據的冗餘(raid1鏡像)和讀寫性能(raid0數據條帶化)
- 磁盤利用率為50%,成本較高
- 只要壞的不是同一個組中,所有的硬盤,就算壞掉一半硬盤都不會丟數據。
raid 5
raid5特點:
- 至少需要3塊磁盤
- 數據條帶化存儲在磁盤,讀寫性能好,磁盤利用率為(n-1)/n
- 一塊磁盤故障,可根據其他數據塊和對應的校驗數據重構損壞數據(消耗性能)
- 校驗算法是計算機二進制的的異或運算(瞭解即可)
- 只能允許壞掉一塊盤。
- 是目前綜合性能最佳的數據保護解決方案
- 兼顧了存儲性能、數據安全和存儲成本等各方面因素(性價比高)
- 適用於大部分的應用場景
- 可以看到raid 5 是兩兩數據就會計算出一個校驗值,存儲在一個硬盤上
- 如果遇見磁盤損壞,且只能掛掉一塊,還是可以用其他磁盤恢復數據的。
raid 6
RAID6特點:
- 至少需要4塊磁盤
- 數據條帶化存儲在磁盤,讀取性能好,容錯能力強
- 採用雙重校驗方式保證數據的安全性
- 如果2塊磁盤同時故障,可以通過兩個校驗數據來重建兩個磁盤的數據
- 成本要比其他等級高,並且更復雜
- 一般用於對數據安全性要求非常高的場合