• 沒有找到結果。

Linux File System

N/A
N/A
Protected

Academic year: 2022

Share "Linux File System"

Copied!
76
0
0

加載中.... (立即查看全文)

全文

(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.

Ext2 、NTFS...etc

VFS Kernel

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

Super Block

Block Group Descriptor

Block Bit Map

inode Bit Map

inode Table

Data Block

(12)

FileSystem

block

建立 block 時可指定不同大小 (format)

建立數量不同。

浪費程度不同。

效能不同。

(13)

FileSystem

block

block 佔用空間方式:

Data block

Ex :File Size : 5k ,Block Size :4k

Data block Data block Data block File

Data block Data block 不可用

File

(14)

FileSystem

block

Block group (index)

group1 group2 group3 group4

Super Block

group5

Group

Descriptor Block

Bit Map Inode

Bit Map Inode

table Data

block

(15)

FileSystem

block

Data block :

Super Block

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 :

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 :

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 :

Super Block

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

Data block Inode

Filename

(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

Data block Inode

Filename SoftLink HardLink

Inode Path

(25)

FileSystem

開機磁碟檢查:

檢查 super block 來確認狀況是否需要修復。

非日誌式檔案系統會每個檔案都比對檢查。

( 花費大量時間 )

日誌式檔案系統會對日誌有記錄的檔案進行檢 查。 ( 節省時間 )

(26)

Q & A

休息一下

(27)

Partition

硬碟名稱:

IDE HDD/ATAPI CDROM

hda

SCSI HDD/ SATA HDD/ USB DISK

hdb

sda

sdb

. . .

. . .

(28)

Partition

分割區名稱:

IDE HDD/ATAPI CDROM

hda1

SCSI HDD/ SATA HDD/ USB DISK

hda2

sda1

sda2

. . .

. . .

(29)

Partition

分割區類別:

Primary Partition

最多 4 個。

Extended Partition

1-4 ,不需連號,不用照順序。

從 primary 轉換過來。

最多一個。

Logical Partition

只能在 Extended Partition 內建立。

需連號 ( 從 5 開始 )

可以不用照順序。

(30)

Partition

分割區類別:

Hard Disk

P P

E

L L L L L

(31)

Partition

分割區類別:

Hard Disk

P 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 :參數說明。

p :列出 partition 。

n :建立 partition 。

d :刪除 partition 。

l :列出 partition type 。

t :修改 partition type 。

q :不修改退出。

w :儲存後退出。

(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 才可以使用。

mount point 一定是目錄。

不使用時可以 umount 。

(41)

Partition

mount point

/home /usr

/home/kevin

/home/mark /dev/sda1

/dev/sdb1

/

/var

(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

mount point 不可以在使用中。

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

PV PV

Physical volume Physical volume

(50)

LVM

VG

將一個或多個 PV 組成群組。

Volume Group

Physical volume Physical volume

(51)

LVM

PE

重新劃分 VG 空間的單位。 ( 類似 block 的概念 )

Volume Group

Physical volume Physical volume

Default : 4M

PE PE PE PE PE PE PE PE PE PE

(52)

LVM

LV

由 VG 切出的 partition (PE 所組成的空間 ) 。

Volume Group

Physical volume Physical volume

可掛載。

PE PE PE PE PE PE PE PE PE PE

/home /usr /var

Logical Volume

(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/sdb1 (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/sdb1 (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/md2 ...

(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

/etc/mdadm/mdadm.conf

--fail /dev/sdb

--remove /dev/sdb

--assmeble --run /dev/md0

(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

參考文獻

相關文件

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

• 有許多MS Office2007之後的新功能轉換成ODF是會出 錯的,而ODF功能與MS Office2003相容度較高,所以 建議先將MS

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

選取本地根資料夾Æ右 1Æ開新檔案Æ輸入檔案名稱( index.html),Enter 鍵Æ右 1Æ設成 首頁 Æ重複〝右 1〝 本地根資料夾〞 Æ開新檔案Æ輸入檔案名稱,Enter

共集放大器 MATLAB 分析. CC

print –dtiff my_image.tif: 將目前指定的圖形,產生 TIFF 格式的影像檔,並以my_image.tif 的檔名儲存。.

上傳後的資料。倘若 於上傳初選檔案截止 日(2/24)前,仍有必 要更換評選檔案,請

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel