Linux存儲管理2

一,文件系統詳解

1,EXT3/4文件系統

1.1 詳解

1.1.1 類型

索引index文件系統

1.1.2 系統限制

Ext3: 文件系統最大16TB,單個文件最大2TB
Ext4: 文件系統最大16TB,單個文件最大16TB
            

1.1.3 出處

Red_Hat_Enterprise_Linux-7-7.0_Release_Notes-zh-CN
希望大家課下閱讀該書籍

1.1.4 存儲結構

磁盤>分區>文件系統>塊組>索引目錄>數據塊
原版
                

中文

               

1.1.5 名詞解釋

         

superblock:記錄此文件系統的整體信息。包括inode/block的總量,使用量,剩餘量,以及文件系統的格式等等。
inode:記錄文件的屬性(文件的元數據metadata),一個文件佔用一個inode,同時記錄此文件數據所在的block numbber。inode大小 爲 128 bytes
block:實際存儲文件的內容,若文件較大,會佔用多個block。block大小 爲 1, 2, 4K

superblock

1 block 與 inode 的總量;
2未使用與已使用的 inode / block 數量;
3 block 與inode 的大小 (block 爲 1, 2, 4K,inode 爲 128 bytes);
4 filesystem 的掛載時間、最近一次寫入數據的時間、最近一次檢驗磁盤 (fsck) 的時間等文件系統的相關信息;
5一個 valid bit 數值,若此文件系統已被掛載,則 valid bit 爲 0 ,若未被掛載,則 valid bit 爲 1
6 superblock的備份信息。
inode
包含文件的元信息,具體來說有以下內容:

* 文件的字節數
* 文件擁有者的User ID
* 文件的Group ID
* 文件的讀、寫、執行權限
* 文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間。
* 鏈接數,即有多少文件名指向這個inode
* 文件數據block的位置
block
存儲文件的實際數據。BLOCK 大小設置

1.2 示例部分  

示例1:inode

創造一個文件,觀察inode信息。
ll   -i    文件名
示例2:block
問題1:分區中,文件的數量和什麼有關係。
1 觀察某個分區中的inode節點數
df    -i
2 創建一個文件
touch  文件名
3 再次觀察inode節點數
df    -i
4 創造大量文件。觀察inode使用情況
for    i     in     `seq 30000`     ;      do      touch     $i     ;     done
5 在另一個SHEEL,觀察inode變化情況。
watch -n 2 'df -i'
6 請問最後,還能否創建新文件呢?
結論:inode決定了文件系統中文件的數量。
7.但是,能否向已存在的文件中寫入內容呢?答案是?
結論:block決定了文件存儲的空間。
問題2:當分區空間大小消耗完畢,還能否新增文件?
cp: 無法創建普通文件"": 設備上沒有空間
1 向目標分區寫入大量數據,填滿
dd   if=/dev/zero     of=/disk1/5.txt    bs=1k    count=1000
2 查看目標分區容量,已滿
df -hT
3 創造新文件
touch
4 得出結論,磁盤空間的限制根據inode和block兩方面
請清理掉填滿的分區。避免不必要的報錯。
示例3:superblock
目的:通過查詢文件系統,理解inode/block/group block的概念
ext4文件系統

1. 方法一:dumpe2fs 查看文件系統
1  dumpe2fs 查看EXT4文件系統。
[root@localhost ~]#dumpe2fs  /dev/vg1/lv1
[root@localhost ~]# dumpe2fs /mnt/lv2 |less
Filesystem volume name:   <none>        //卷標
Last mounted on:          /mnt/lv2        //最後一次掛載
Filesystem UUID:          0b6c98a1-0ec4-4fc6-b594-38d729d3791e    //uuid
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)    //版本
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize    //特性
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl    //默認掛載屬性
Filesystem state:         clean        //乾淨,非修復狀態
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              77824    //inode總數
Block count:              307200    //block總數
Reserved block count:     14335    //保留block
Free blocks:              264119    //空閒block
Free inodes:              75324    //空閒inode
First block:              1        //第一個block
Block size:               1024        //block大小
Fragment size:            1024        
Group descriptor size:    64
Reserved GDT blocks:      255
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Thu Oct 12 7:49:17 2016    //創建時間
Last mount time:          Thu Oct 12 8:11:01 2016        //上次掛載    
Last write time:          Thu Oct 12 8:11:01 2016    //文件系統寫入時間
Mount count:              2        //掛載次數
Maximum mount count:      -1
Last checked:             Thu Oct 12 8:49:17 2017    //最後一次檢測
Check interval:           0 (<none>)
Lifetime writes:          39 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11        //第一個inode
Inode size:               128    //inode大小,字節
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      ae1105b5-c894-4e37-84e3-16ac564f60d4
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke journal_64bit
日誌大小:             4096k
Journal length:           4096            //日誌類信息
Journal sequence:         0x00000008
Journal start:            1
Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
Checksum 0xa19a, unused inodes 514
主 superblock at 1, Group descriptors at 2-4
保留的GDT塊位於 5-259
Block bitmap at 260 (+259), Inode bitmap at 276 (+275)
Inode表位於 292-547 (+291)
3412 free blocks, 514 free inodes, 366 directories, 514個未使用的inodes
可用塊數: 4781-8192
可用inode數: 1535-2048
Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED]
Checksum 0x4d50, unused inodes 2048
備份 superblock at 8193, Group descriptors at 8194-8196 //備份的超級塊,用來恢復損壞塊組的。
保留的GDT塊位於 8197-8451
Block bitmap at 261 (bg #0 + 260), Inode bitmap at 277 (bg #0 + 276)
Inode表位於 548-803 (bg #0 + 547)
499 free blocks, 2048 free inodes, 0 directories, 2048個未使用的inodes
可用塊數: 10253, 10255-10752
可用inode數: 2049-4096

2. 方法二:tune2fs查看文件系統(可修改卷標)
tune2fs 也可以查看文件系統。
[root@localhost ~]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006)
Filesystem volume name: qianfeng
Last mounted on: <not available>
Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 48960
Block count: 195312
Reserved block count: 9765
Free blocks: 183410
Free inodes: 48946
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
Journal inode: 8

修改卷標,可使用-L 參數
例如:tune2fs  -L qianfeng  /dev/vg1/lv1

擴展選項
                        
xfs文件系統
    xfs_growfs /dev/vg1/lv1
    xfs_info /dev/vg1/lv1

示例4:卷標
更改ext4文件系統的卷標信息(設置標籤)
[root@tianyun ~]# tune2fs -L music /dev/vg1/lv1

2,XFS文件系統



注意:與EXT4修復同理,不可以掛載使用文件系統時修復。

3,FAT文件系統


二,文件鏈接

1,符號鏈接symbolic link /軟鏈接

符號鏈接 symbolic link /軟鏈接,絕對路徑記錄/快捷方式。
1 創建一個文件,並輸入內容。
[root@tianyun ~]# echo 111 > /file1
2 創建一個軟連接。
[root@tianyun ~]# ln -s /file1 /home/file11
3 觀察軟連接
[root@tianyun ~]# ll /home/file11
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1
4 觀察軟連接文件的inode是新的。內容是6,就是源文件的絕對路徑。
[root@tianyun ~]# ll -i /file1 /home/file11
4599081 -rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
135 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1
5 查看兩個文件,內容一致。
[root@tianyun ~]# cat /file1
111
[root@tianyun ~]# cat /home/file11
111
6 刪除源文件,軟連接閃爍,不可用。
[root@tianyun ~]# rm -rf /file1
[root@tianyun ~]# ll /home/file11
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1
總結:軟連接是一個新文件,像快捷方式,可以對文件和目錄做軟連接。
軟連接記錄的只是源文件的絕對路徑。
軟連接失去源文件不可用。

2,硬鏈接

硬鏈接,新的文件入口
1 創建同分區硬鏈接成功,創建不同分區硬鏈接失敗。
[root@tianyun ~]# echo 222 > /file2
[root@tianyun ~]# ln /file2 /file2-h1
[root@tianyun ~]# ln /file2 /home/file2-h2    
//將文件已硬鏈接方式,發送到其他分區。結果是?
ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
[root@tianyun ~]# ln /file2 /etc/file2-h3

2 硬鏈接的inode號相同,但並不佔用block。使用df -k觀察硬鏈接數量無變化。
[root@tianyun ~]# ll -i /file2 /file2-h1 /home/file2-h3
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /etc/file2-h3
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2-h1
把一些重要文件做多個鏈接

3 不允許將硬鏈接指向目錄
[root@tianyun home]# ln /home/ /mnt
ln: “/home/”: 不允許將硬鏈接指向目錄

總結:硬鏈接只能針對文件做。不能對目錄做。
硬鏈接只能在同分區做。
硬鏈接不佔用block。
硬鏈接其實是複製了inode。

三,RAID(瞭解)

1,簡介

PAID:廉價磁盤冗餘陣列(Redundant Array of Independent Disks)

作用:容錯、提升讀寫速度

2,類型

RAID類型 個數 利用率 優缺點
------------------------------------------------------
RAID0 條帶集 2+ 100% 讀寫速率快,不容錯
RAID1 鏡像集 2 50% 讀寫速率一般,容錯
RAID5 帶奇偶校驗條帶集 3+ (n-1)/n 讀寫速率快,容錯,允許壞一塊
RAID6 帶奇偶校驗條帶集雙校驗 4+ (n-2)/n 讀寫快,容錯,允許壞兩塊
RAID10 RAID1的安全+RAID0的高速 4 50% 讀寫速率快,容錯
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 讀寫速率快,容錯
RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 讀寫速率快,容錯



3,不同場景RAID的使用

RAID 實現方式

硬RAID: 需要RAID卡,有自己的CPU,處理速度快,有電池和無電池。

軟RAID: 通過操作系統實現,比如Windows、Linux

4,RAID5(3塊硬盤)+熱備(1塊硬盤)

製作磁盤陣列步驟(重點部分)

4.1 準備4塊磁盤

[root@tianyun ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 48 Jan 13 16:07 /dev/sdd
brw-rw---- 1 root disk 8, 64 Jan 13 16:07 /dev/sde
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdf
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdg

4.2 創建RAID

[root@tianyun ~]# yum -y install mdadm //確保mdadm命令可用
[root@tianyun ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}

 -C 創建RAID
/dev/md0 第一個RAID設備
-l5 RAID5
-n RAID成員的數量
-x 熱備磁盤的數量
可用空間2G

4.3 格式化,掛載

[root@tianyun ~]# mkfs.xfs /dev/md0
[root@tianyun ~]# mkdir /mnt/raid5
[root@tianyun ~]# mount /dev/md0 /mnt/raid5
[root@tianyun ~]# cp -rf /etc /mnt/raid5/etc1

4.4 查看RAID信息

[root@tianyun ~]# mdadm -D /dev/md0 //-D 查看詳細信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 13 16:28:47 2016
Raid Level : raid5        //raid類型
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
Raid Devices : 3        //組中設備的數量
Total Devices : 4    //總設備數
Persistence : Superblock is persistent

Update Time : Mon Jan 13 16:34:51 2016
State : clean     //狀態,衛生的,哈哈
Active Devices : 3    //活躍3個
Working Devices : 4  //4個在工作
Failed Devices : 0        //壞了1就危險了,2個就完蛋了
Spare Devices : 1        //熱備的1個。

Layout : left-symmetric
Chunk Size : 512K    //校驗碼大小
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd        //同步
1 8 64 1 active sync /dev/sde        //同步
4 8 80 2 active sync /dev/sdf            //同步
3 8 96 - spare /dev/sdg

4.5 模擬一塊硬盤損壞,並移除

終端一:
[root@tianyun ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail' //watch持續查看
終端二:
[root@tianyun ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde
//模擬壞了並移除
-f --fail
-r --remove

4.6 設置RAID開機生效

[root@tianyun ~]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
[root@tianyun ~]# mdadm -D -s > /etc/mdadm.conf

4.7 參考

重建過程

Update Time : Mon Aug 4 22:47:47 2016
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Rebuild Status : 3% complete
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 3df9624c:138a5b3e:2f557132:59a43d04
Events : 41
Number Major Minor RaidDevice State
0 252 16 0 active sync /dev/vdb
3 252 64 1 spare rebuilding /dev/vde    //正在重建
4 252 48 2 active sync /dev/vdd

命令選項彙總

mdadm選項彙總:
-s --scan
-S --stop
-D --detail
-C --create
-f --fail
-r --remove
-n --raid-devices=3
-x --spare-devices=1
-l --level=5





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章