Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linux File System 魏凡琮 (Jerry Wei).

Similar presentations


Presentation on theme: "Linux File System 魏凡琮 (Jerry Wei)."— Presentation transcript:

1 Linux File System 魏凡琮 (Jerry Wei)

2 Agenda Linux FileSystem Partition LVM RAID Q & A

3 FileSystem 什麼是 FileSystem? Disk File System.。 儲存和組織電腦檔案和資料的方法。
可以存放檔案及取回檔案的系統。 Everything is file, file is everything.

4 FileSystem 選擇FileSystem: 穩定性。 容量。 擴充性。 效能。

5 FileSystem FileSystem種類: 傳統(非日誌式)檔案系統。 ext2、ms-dos、VFAT....etc.
日誌式檔案系統。 ext3、ReiserFS、XFS...etc.

6 FileSystem 常見的FileSystem: ext2:Linux早期使用的檔案系統,基於inode來 管理檔案。
ext3:ext2 的強化版 ,增加了日誌功能,目前是 大部份Linux預設使用的檔案系統。 ext3:ext2 的強化版 ,增加了日誌功能,目前是 大部份Linux預設使用的檔案系統。

7 FileSystem 常見的FileSystem: xfs:原本是SGI系統所使用的檔案系統,特點是 處理大檔案速度快。
ReiserFS:Hans Reiser及其團隊所開發,使用了 B+-tree,特點是對小檔案的處理速度快。 zfs:由Sun所開發的檔案系統,128位元的檔案 系統,幾乎可達到無限容量大小的支援。

8 FileSystem VFS: Virtual FileSystem Switch. Kernel VFS Ext2、NTFS...etc
Buffer cache Disk driver

9 FileSystem 檔案組成(ext2): 檔案(file) = 資料(data) + 資訊(metadata)
資料存放於data block。 資訊存放於inode。 inode data block

10 FileSystem inode: 128 bytes
儲存檔案的各項屬性(類別、權限、大小、修改 時間、data block位置...etc) 每個檔案都有其獨立的inode。

11 FileSystem block: Data Block Block Bit Map inode Table
Block Group Descriptor inode Bit Map Super Block

12 FileSystem block: 建立block時可指定不同大小(format) 建立數量不同。 浪費程度不同。 效能不同。

13 FileSystem block: block佔用空間方式: Ex:File Size: 5k,Block Size:4k
Data block Data block Data block Data block File File 不可用 Data block Data block

14 FileSystem block: Block group (index) group1 group2 group3 group4
Super Block Group Descriptor Block Bit Map Inode Bit Map Inode table Data block

15 FileSystem block: Data block: 用來存放檔案資料。佔用最多數量。 Q:如何知道檔案資料放那? Super
Group Descriptor Block Bit Map Inode Bit Map Inode table Data block 用來存放檔案資料。佔用最多數量。 Q:如何知道檔案資料放那?

16 FileSystem block: Inode table:
Super Block Group Descriptor Block Bit Map Inode Bit Map Inode table Data block 存放檔案的inode資訊,inode一旦滿了也一樣會無法儲存新檔案,inode會告知檔案所使用的data block 位置。 Q:如何知道那些inode和block用掉了?

17 FileSystem block: Inode bit map: 利用 0 或 1 的狀態來對照 inode map的分配狀況。
Super Block Group Descriptor Block Bit Map Inode Bit Map Inode table Data block 利用 0 或 1 的狀態來對照 inode map的分配狀況。 Q:如何知道inode bit map 有多大?

18 FileSystem block: Block bit map: 利用 0 或 1 的狀態來對照 data block的分配狀況。
Super Block Group Descriptor Block Bit Map Inode Bit Map Inode table Data block 利用 0 或 1 的狀態來對照 data block的分配狀況。 Q:如何知道block bit map 有多大?

19 FileSystem block: Group Descriptor:
Super Block Group Descriptor Block Bit Map Inode Bit Map Inode table Data block 記錄及標示 bit map、inode table、data block 等區塊的範圍及指標。 Q:如何知道filesystem的分配及使用情形?

20 FileSystem block: Super block: 記錄整個filesystem分配及使用狀況。
Group Descriptor Block Bit Map Inode Bit Map Inode table Data block 記錄整個filesystem分配及使用狀況。 Q:如何從filesystem找到一份檔案?

21 FileSystem directory: 也是一份檔案。 記錄其下所索引的每一份檔案名稱及inode。
絕對路徑:從根目錄(/home/abc/def) 開始索引。 相對路徑:從當前目錄(./abc/def)開始索引。

22 FileSystem directory: Directory Filename Inode Data block

23 FileSystem link: Hard Link (不可跨filesystem、不可link目錄) 使用與原檔案相同的inode。
#ln [src-file] [link-file] Symbolic Link (Soft Link) 另外新增的inode,但資料內容是原檔案的路徑。 #ln -s [src-file] [linkfile]

24 FileSystem link: Directory HardLink Filename SoftLink Inode Inode Path
Data block

25 FileSystem 開機磁碟檢查: 檢查super block來確認狀況是否需要修復。
非日誌式檔案系統會每個檔案都比對檢查。 (花費大量時間) 日誌式檔案系統會對日誌有記錄的檔案進行檢 查。(節省時間)

26 Q & A 休息一下

27 Partition 硬碟名稱: IDE HDD/ATAPI CDROM hda hdb . . . . .
SCSI HDD/ SATA HDD/ USB DISK sda sdb

28 Partition 分割區名稱: IDE HDD/ATAPI CDROM hda1 hda2 . . . . .
SCSI HDD/ SATA HDD/ USB DISK sda1 sda2

29 Partition 分割區類別: Primary Partition 最多 4 個。 1-4,不需連號,不用照順序。
Extended Partition 從primary轉換過來。 最多一個。 Logical Partition 只能在Extended Partition內建立。 需連號(從5開始) 可以不用照順序。

30 Partition 分割區類別: Hard Disk P P E L L L L L

31 Partition 分割區類別: P Hard Disk P E L L L L L

32 Partition 分割區考量因素: 內容分類:系統檔案、程式/原始碼、資料文件。 檔案性質:size、存取行為。 安全性:掛載選項。
效能。 擴充性。

33 Partition 基本分割區: / (root) swap

34 Partition 常見分割區: /boot /home /usr /var /tmp

35 Partition 建立流程: fdisk partprobe mkfs mkdir mount /etc/fstab

36 Partition fdisk: 建立/修改partition #fdisk /dev/sdb m:參數說明。 q:不修改退出。
p:列出partition。 w:儲存後退出。 n:建立partition。 d:刪除partition。 l:列出partition type。 t:修改partition type。

37 Partition partprobe: 強制更新partition資訊。(reboot or partprobe)
當fdisk完後,kernel沒有reload partition info時使用。 #partprobe

38 Partition mkfs: 格式化。 mkfs、mkfs.ext2、mkfs.ext3 都可以。
#mkfs.ext3 /dev/sdb1 #mkfs.ext2 -j /dev/sdb1 #mkfs -t ext3 /dev/sdb1

39 Partition mkfs: -b:block size. -c:check block for bad block.
-L:volum label.

40 Partition mount point: linux沒有磁碟代號(c:、d:)。 所有device都需要mount才可以使用。
不使用時可以umount。

41 Partition mount point: /usr / /dev/sda1 /var /home/kevin /dev/sdb1
/home/mark

42 Partition mount: 掛載device至mount point。 #mount /dev/cdrom /mnt/cdrom
-t:filesystem type -r:ready only -w:read / write -o:async、atime、owner、rw、roex.....etc mount point的目錄需要先被建立(mkdir)。

43 Partition umount: 卸載mount point。 #umount /mnt/cdrom

44 Partition fstab: /etc/fstab (掛載設定檔)。 Device (device path、label)
mount point Filesystem type mount option dump fsck

45 Partition fstab: mount option: auto / noauto:mount -a 時是否掛載。
user / nouser:是否允許非root掛載。 defaults:rw、suid、dev、exec、auto、nouser async(no acl support)。

46 Q & A 休息一下

47 LVM LVM: Logical Volume Manager (LVM2) 。 彈性管理硬碟大小。
mapping mode : linear、stripe、mirror。 snapshot。

48 LVM LVM: PV (physical volume) 。 VG (volume group) 。
PE (physical extent)。 LV (logical volume)。

49 LVM PV: Partition (8e) or整顆硬碟 。 ex : /dev/sda1、/dev/sdb2。
Physical volume Physical volume PV PV

50 LVM VG: 將一個或多個PV組成群組。 Volume Group Physical volume Physical volume

51 LVM PE: 重新劃分VG空間的單位。(類似block的概念) Default : 4M Volume Group
Physical volume Physical volume PE PE PE PE PE PE PE PE PE PE

52 LVM LV: 由VG切出的partition (PE所組成的空間)。 可掛載。 Volume Group Physical volume
Logical Volume /home /usr /var

53 LVM lvreduce: 釋放LV中未使用的PE。 減少LV的空間。

54 LVM lvextend: 將未使用的PE加入LV中。 擴大LV的空間。

55 LVM vgextend: 將PV加入到VG中 (PE增加)。 擴大VG的空間。

56 LVM vgreduce: 將PV從VG中移除 (PE減少)。 減少VG的空間。

57 LVM LVM基本建置: fdisk /dev/sdb (8e)
pvcreate /dev/sdb (pvs、pvscan、pvdisplay) vgcreate VG1 /dev/sdb1 (vgs、vgscan、vgdisplay) lvcreate -L 300M -n LV1 VG1 (lvs、lvscan、lvdisplay) mkfs.ext3 /dev/VG1/LV1 mkdir /mnt/myLV1 mount /dev/VG1/LV1 /mnt/myLV1

58 LVM LVM基本建置: fdisk /dev/sdb (8e)
pvcreate /dev/sdb (pvs、pvscan、pvdisplay) vgcreate VG1 /dev/sdb1 (vgs、vgscan、vgdisplay) lvcreate -L 300M -n LV1 VG1 (lvs、lvscan、lvdisplay) mkfs.ext3 /dev/VG1/LV1 mkdir /mnt/myLV1 mount /dev/VG1/LV1 /mnt/myLV1

59 LVM LVM擴充空間: fdisk /dev/sdc (8e) pvcreate /dev/sdc1
vgextend VG1 /dev/sdc1 lvextend -L 600M /dev/VG1/LV1 e2fsck -f /dev/VG1/LV1 resize2fs /dev/VG1/LV1

60 LVM 建立snapshot: 建立一個時間點的快照。 lvcreate -L 100M -s -n S1 /dev/VG1/LV1
mkdir /mnt/LV1-snapshot mount /dev/VG1/S1 /mnt/LV1-snapshot umount /mnt/LV1-snapshot lvremove /dev/VG1/LV1

61 Q & A 休息一下

62 RAID RAID: 磁碟陣列。 將多顆硬碟組合成一顆。 Hardware RAID。 Software RAID。 Host RAID。

63 RAID Hardware RAID: 有獨立處理的硬體。(raid card) 所有RAID運算由硬體完成。
對系統來說,直接視為一個device (/dev/sda) 效能高,成本高。

64 RAID Software RAID: 在組成RAID前,各device 為獨立的。(sda、sdb)
組成後RAID後,系統以md0、md1辨視(mdadm) 吃系統本身資源來進行RAID運算。 效能差、成本低。

65 RAID Host RAID: 介於Hardware RAID與Software RAID之間。 可以想成是主機內建的RAID功能。
功能較陽春。 效能比Software RAID來的稍好。

66 RAID RAID0: striping。 至少2 顆硬碟。 存取速度最快。 沒有容錯能力。 總容量= 所有硬碟總和。

67 RAID RAID1: mirror。 至少2顆硬碟。 效能與原本差不多。 具有容錯能力。 總容量= 所有硬碟容量的一半 。

68 RAID RAID5: 至少3顆硬碟。 可容錯1顆硬碟壞掉。 效能較RAID1高。 總容量= (硬碟數量-1) * 硬碟容量。

69 RAID Hot spare: 需至少1顆閒置硬碟。 當有硬碟壞掉時,可最快時間替代並開始rebuild。
RAID rebuild過程中,效能會大幅下降。

70 RAID RAID1+0: RAID10 RAID1 + RAID0 RAID01 RAID0 + RAID1

71 RAID mdadm: multi device administers. (Linux)
Software RAID or multipath. RAID0、RAID1、RAID5、RAID6.....etc. /dev/md0、/dev/md1、/dev/md

72 RAID mdadm: --create --create /dev/md0 --raid-device --raid-device=2
--level level=1 or --level=mirror --spare-device spare-device=1 (raid0不適用) --detail deltail /dev/md0 (--scan) /etc/mdadm/mdadm.conf

73 RAID mdadm: --manage --stop /dev/md0 --add /dev/sdd --fail /dev/sdb
--remove /dev/sdb --assmeble run /dev/md0 /etc/mdadm/mdadm.conf

74 RAID 基本操作: 建立/dev/md0 (raid1 )
#mdadm --create /dev/md0 --raid-device=2 \ > --level=1 --spare-devices=0 \ > /dev/sdb /dev/sdc mkfs.ext3 /dev/md0 mkdir /mnt/raid-test mount /dev/md0 /mnt/raild-test mdadm --detail --scan >> /etc/mdadm/mdadm.conf

75 RAID 基本操作: 加入device #mdadm --manage /dev/md0 --add /dev/sdd
設定failure device #mdadm --manage /dev/md0 --fail /dev/sdc 移除 device #mdadm --manage /dev/md0 --remove /dev/sdc

76 Q & A


Download ppt "Linux File System 魏凡琮 (Jerry Wei)."

Similar presentations


Ads by Google