Linux File System Jerry Wei Agenda Linux File

  • Slides: 76
Download presentation
Linux File System 魏凡琮 (Jerry Wei)

Linux File System 魏凡琮 (Jerry Wei)

Agenda Linux File. System Partition LVM RAID Q&A

Agenda Linux File. System Partition LVM RAID Q&A

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

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

File. System VFS: Virtual File. System Switch. Kernel VFS Ext 2、NTFS. . . etc

File. System VFS: Virtual File. System Switch. Kernel VFS Ext 2、NTFS. . . etc Buffer cache Disk driver

File. System 檔案組成(ext 2): 檔案(file) = 資料(data) + 資訊(metadata) 資料存放於data block。 資訊存放於inode。 inode data

File. System 檔案組成(ext 2): 檔案(file) = 資料(data) + 資訊(metadata) 資料存放於data block。 資訊存放於inode。 inode data block

File. System block: Data Block Bit Map inode Table Block Group Descriptor inode Bit

File. System block: Data Block Bit Map inode Table Block Group Descriptor inode Bit Map Super Block

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

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

File. System block: Block group (index) group 1 Super Block group 2 Group Descriptor

File. System block: Block group (index) group 1 Super Block group 2 Group Descriptor group 3 Block Bit Map group 4 Inode Bit Map group 5 Inode table Data block

File. System block: Data block: Super Block Group Descriptor Block Bit Map Inode Bit

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

File. System block: Inode table: Super Block Group Descriptor Block Bit Map Inode table

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

File. System block: Inode bit map: Super Block Group Descriptor Block Bit Map Inode

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

File. System block: Block bit map: Super Block Group Descriptor Block Bit Map Inode

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

File. System block: Group Descriptor: Super Block Group Descriptor Block Bit Map Inode table

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

File. System block: Super block: Super Block Group Descriptor Block Bit Map Inode Bit

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

File. System directory: Directory Filename Inode Data block

File. System directory: Directory Filename Inode Data block

File. System link: Hard Link (不可跨filesystem、不可link目錄) 使用與原檔案相同的inode。 #ln [src-file] [link-file] Symbolic Link (Soft Link)

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

File. System link: Directory Hard. Link Filename Soft. Link Inode Data block Path

File. System link: Directory Hard. Link Filename Soft. Link Inode Data block Path

Partition 硬碟名稱: IDE HDD/ATAPI CDROM hda hdb . . . SCSI HDD/ SATA HDD/

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

Partition 分割區名稱: IDE HDD/ATAPI CDROM hda 1 hda 2 . . . SCSI HDD/

Partition 分割區名稱: IDE HDD/ATAPI CDROM hda 1 hda 2 . . . SCSI HDD/ SATA HDD/ USB DISK sda 1 sda 2 . . .

Partition 分割區類別: Primary Partition 最多 4 個。 1 -4,不需連號,不用照順序。 Extended Partition 從primary轉換過來。 最多一個。 Logical

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Partition mkfs: 格式化。 mkfs、mkfs. ext 2、mkfs. ext 3 都可以。 #mkfs. ext 3 /dev/sdb 1

Partition mkfs: 格式化。 mkfs、mkfs. ext 2、mkfs. ext 3 都可以。 #mkfs. ext 3 /dev/sdb 1 #mkfs. ext 2 -j /dev/sdb 1 #mkfs -t ext 3 /dev/sdb 1

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

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

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

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

Partition mount point: /usr /dev/sda 1 / /var /dev/sdb 1 /home/kevin /home/mark

Partition mount point: /usr /dev/sda 1 / /var /dev/sdb 1 /home/kevin /home/mark

Partition mount: 掛載device至mount point。 #mount /dev/cdrom /mnt/cdrom -t:filesystem type -r:ready only -w:read / write

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)。

Partition umount: 卸載mount point。 #umount /mnt/cdrom mount point 不可以在使用中。

Partition umount: 卸載mount point。 #umount /mnt/cdrom mount point 不可以在使用中。

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

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

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

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

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

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

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

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

LVM PV: Partition (8 e) or整顆硬碟 。 ex : /dev/sda 1、/dev/sdb 2。 Physical volume

LVM PV: Partition (8 e) or整顆硬碟 。 ex : /dev/sda 1、/dev/sdb 2。 Physical volume PV PV

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

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

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

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

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

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

LVM LVM基本建置: fdisk /dev/sdb (8 e) pvcreate /dev/sdb 1 (pvs、pvscan、pvdisplay) vgcreate VG 1 /dev/sdb

LVM LVM基本建置: fdisk /dev/sdb (8 e) pvcreate /dev/sdb 1 (pvs、pvscan、pvdisplay) vgcreate VG 1 /dev/sdb 1 (vgs、vgscan、vgdisplay) lvcreate -L 300 M -n LV 1 VG 1 (lvs、lvscan、lvdisplay) mkfs. ext 3 /dev/VG 1/LV 1 mkdir /mnt/my. LV 1 mount /dev/VG 1/LV 1 /mnt/my. LV 1

LVM LVM基本建置: fdisk /dev/sdb (8 e) pvcreate /dev/sdb 1 (pvs、pvscan、pvdisplay) vgcreate VG 1 /dev/sdb

LVM LVM基本建置: fdisk /dev/sdb (8 e) pvcreate /dev/sdb 1 (pvs、pvscan、pvdisplay) vgcreate VG 1 /dev/sdb 1 (vgs、vgscan、vgdisplay) lvcreate -L 300 M -n LV 1 VG 1 (lvs、lvscan、lvdisplay) mkfs. ext 3 /dev/VG 1/LV 1 mkdir /mnt/my. LV 1 mount /dev/VG 1/LV 1 /mnt/my. LV 1

LVM LVM擴充空間: fdisk /dev/sdc (8 e) pvcreate /dev/sdc 1 vgextend VG 1 /dev/sdc 1

LVM LVM擴充空間: fdisk /dev/sdc (8 e) pvcreate /dev/sdc 1 vgextend VG 1 /dev/sdc 1 lvextend -L 600 M /dev/VG 1/LV 1 e 2 fsck -f /dev/VG 1/LV 1 resize 2 fs /dev/VG 1/LV 1

LVM 建立snapshot: 建立一個時間點的快照。 lvcreate -L 100 M -s -n S 1 /dev/VG 1/LV 1

LVM 建立snapshot: 建立一個時間點的快照。 lvcreate -L 100 M -s -n S 1 /dev/VG 1/LV 1 mkdir /mnt/LV 1 -snapshot mount /dev/VG 1/S 1 /mnt/LV 1 -snapshot umount /mnt/LV 1 -snapshot lvremove /dev/VG 1/LV 1

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

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

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

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

RAID 1+0: RAID 10 RAID 1 + RAID 01 RAID 0 + RAID 1

RAID 1+0: RAID 10 RAID 1 + RAID 01 RAID 0 + RAID 1

RAID mdadm: multi device administers. (Linux) Software RAID or multipath. RAID 0、RAID 1、RAID 5、RAID

RAID mdadm: multi device administers. (Linux) Software RAID or multipath. RAID 0、RAID 1、RAID 5、RAID 6. . . etc. /dev/md 0、/dev/md 1、/dev/md 2. . .

RAID mdadm: --create --raid-device --level --spare-device --detail /etc/mdadm. conf --create /dev/md 0 --raid-device=2 --level=1

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

RAID mdadm: --manage --assmeble /etc/mdadm. conf --stop /dev/md 0 --add /dev/sdd --fail /dev/sdb --remove

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

RAID 基本操作: 建立/dev/md 0 (raid 1 ) #mdadm --create /dev/md 0 --raid-device=2  >

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

RAID 基本操作: 加入device #mdadm --manage /dev/md 0 --add /dev/sdd 設定failure device #mdadm --manage /dev/md

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

Q&A

Q&A