Weitere ähnliche Inhalte
Ähnlich wie Linux File system (20)
Mehr von Kenny (netman) (20)
Linux File system
- 8. 傳统(非日誌式)檔案系統
■ ext2
已在 Linux 系統上運行非常長久一段時間,基於 inode 基礎
管理檔案。可輕鬆升級為 ext3
■ MS-DOS/VFAT.
由 Microsoft 設計專門運行在 Windows 及 DOS 系統上的
檔案系統。主要以 FAT (File Allocation Table) 來管理檔案
■ minix.
古老且精簡的檔案系統。目前比較常見在 RAM disk 或
Floppy 媒體中使用
- 10. ■ ext3
為 ext2 檔安系統的延伸,主要增加了日誌功能
■ ReiserFS
原本由 Hans Reiser 開發,採用資料庫方式來管理檔案,
以 Balanced Binary Tree 結構提供更高效能的資料存取。
■ XFS
原本為 SGI 系統使用的高效能日誌式檔案系統。具備快速復
原能力、高彈性、大容量等優點
■ NTFS
是微軟公司為 Windows NT 系統設計的檔案系統,及後也
應用在更新的 Windows 系統當中
日誌式檔案系統
- 15. • 每份 inode 大小為 128 byte ,內容:
– 檔案類別
– 檔案權限
– 連結數目
– 擁有者資訊 (user & group)
– 檔案大小
– 時間戳印 (atime, mtime, ctime)
– Data Block 位置指針
– 其他屬性 ...
- 18. •因為 data block 的使用基本是獨佔式的
( 以一個 5K 大小的檔案為例 ) :
–4K 大小的 block 會浪費 3K
–2K 大小的 block 會浪費 1K
–1K 大小的 block 會浪費 0K
- 20. •每個 group 的功能都是相同的
group0 group1 Group2...
Super
Block
Group
Descriptor Data Block ...Block
Bit Map
Inode
Table
Inode
Bit Map
- 22. ■ Inode Table
存放每一份檔案的 inode 資訊。這也是檔
案系統中另一主要資源,若所有 inode 都
分配出去就不能建立新檔案了。 Inode 會告
訴檔安的 data block 位置。
Q: 怎麼知道哪些 inode 跟 block 用掉了?
Inode
Table
- 23. ■ Inode Bit Map
以 0 或 1 的狀態對照 inode table 的分
配情況。
Q: 怎麼知道 Inode Bit Map 有多大呢?
Inode
Bit Map
- 24. ■ Block Bit Map
以 0 或 1 的狀態對照 data block 的分配
情況。
Q: 怎麼知道 Block Bit Map 有多大呢?
Block
Bit Map
- 31. 關於 link
•Hard Link : ln file hard.link
–使用相同的 inode 索引,與原檔案地位同等
•Symbolic Link : ln -s file soft.link
–使用不同的 inode ,但資料內容是路徑
- 33. 關於 Link Counter
•在 Hard Link 建立時增加 1
•在檔案刪除時減少 1
–若 Link Counter 大於 0 則單純在
Directory 中把檔案名稱移除
–若 Link Counter 等於 0 除了從
Directory 把檔案名稱移除之外,同時
把 inode & block Bit Map 中的記錄標
識為 0 (free)
Q: 敏感檔案如何才能真正刪除?
- 34. Ext2 檔案系統的限制
•每一檔案名稱不得超過 255 個字母
•單一路徑 ( 含 /) 不得超過 4096 個字母
•在 1K block size 的情況下,單一檔案
最大 16G 、整個檔案系統最大 2T
•在 4K block size 的情況下,單一檔案
最大 2T 、整個檔案系統最大 16T
- 38. 系統在重開機過程
•會檢查 Super Block 的 Valid Bit 以及
掛載次數 / 天數來確認檔案損毀情形并加
以修復
•傳統非日誌式檔案系統會針對每一份檔案
作檢查,若檔案數量龐大的話這將耗費相
當多的時間!
•這在企業經營中常因斷電或其他意外造成
過大的 Down Time 成本
- 43. 分割區類別
•Primary Partition
–最多 4 個
–號碼從 1 到 4 ,不需連號不需按順序
•Extended Partition
–從 Primary 轉換過來
–最多只能 1 個也可以不設
•Logical Partition
–只能在 Extended Partition 之內建立
–必需連號(從 5 開始)
–但可以不按順序
- 53. partprobe 命令
•當 fdisk 命令完成分割區修改之後,系
統核心仍然使用舊有資訊
•要系統使用修改之後的新資訊,有兩個方
法:
–reboot
–Partprobe
•檢查 /proc/partitions 可獲知當前系統
的分割區資訊
- 55. •常見 mkfs 選項:
-b <size>
•Block Size
-c
•檢查 bad block
-i <ratio>
•Inode 對 byte 的比例
-N <number>
•Inode 總量(大約值)
-j
•啟用 journal
-L <label>
•設定標簽
*更多參考 man mke2fs
- 56. 檔案系統掛載
•Linux 檔案系統跟 Windows 不同,并
不使用磁碟代號
•所有儲存設備必需掛載 (mount) 到一個
目錄才能存取
•掛載目錄最好是空的 (empty) ,也稱為
掛載點 (Mount Point)
•設備不使用時可以執行卸載 (umount)
- 58. mount 命令
•命令語法:
mount -t <fs_type> -o <m_opts>
<device> <mount_point>
•Example:
mount -t iso9660 -o ro,nosuid
/dev/sr0 /media/cdrom
- 67. LVM 的好處
•突破過往傳統 partition 的限制,輕易組
建及擴充龐大的檔案系統空間
•輕鬆調整容量大小
•在支援熱插拔的設備上,不需要停止服務
就能替換硬碟
•可利用 striping 提高更好的存取效能
•可利用 shapshot 為某一時間點作備份,
極致化壓縮 backup window 的大小
- 77. LVM 基本建置操作
•先執行 fdisk ( 設 ID 為 x8e) 及 partprobe
•運行 pvcreate :
pvcreate /dev/sd{a,b}1
•運行 vgcreate :
vgcreate myvg /dev/sd{a,b}1
•運行 lvcreate :
lvcreate -L 500M -n mylv myvg
•新建的 lv 路徑在 /dev/<vg>/<lv> ,如:
/dev/myvg/mylv
•再執行 mkfs, mkdir, mount 等操作
- 78. LVM 擴充操作
•先執行 fdisk (設ID為 x8e)及 partprobe
•運行 pvcreate 處理新分割區或新硬碟:
pvcreate /dev/sdc1
•運行 vgextend 把新 PV 納入 VG:
vgextend myvg /dev/sdc1
•運行 pvmove 把舊硬碟的 PE 搬移至新硬碟:
pvmove /dev/sda1 /dev/sdc1
•運行 vgreduce 卸下舊硬碟:
vgreduce myvg /dev/sda1
•運行 lvextend 擴充 LV:
lvexted -l +100% /dev/myvg/mylv
•運行 resize2fs 擴充檔案系統:
resize2fs /dev/myvg/mylv
•再執行 df 確認容量大小
- 79. LVM 其他操作
•關於 PV 的查詢:
pvscan
pvdisplay
•關於 vg 的查詢:
vgscan
vgdisplay
•關於 lv 的查詢:
lvscan
lvdisplay
•停用或啟用 VG
vgchange -a <n|y> <vg_name>
- 85. RAID 的種類
•Hardware RAID
–有獨立處理的硬體處理單元
–所有 RAID 的運算由硬體完成
–對系統來說,只視為單一的儲存設備,如 sda, sdb, …
–效能高、功能強,但成本也高
•Software RAID
–在組成 RAID 之前,系統只看到獨立的儲存設備
–組成 RAID 之後,系統以 md0, md1, … 等名稱來識別
–所有的 RAID 運算由系統完成
–效能與功能稍遜,但勝在便宜
- 92. RAID + LVM
•我們可以用 RAID 的容錯能力來解決
LVM 不能容錯的問題
–能用 Hardware RAID 是最好的
–也可以用 Software RAID1
3
2
1
3
2
1
PV
3
2
1
3
2
1
PV
VG
- 104. Many more...
– Quota
– Backup/Rsync
– Content Filtering
– Regular Expression
– ISO/RamDisk/VM Image
– ...