概述:本章主要講解raid和邏輯卷
什么是RAID
RAID:Redundant Arrays of Inexpensive(Independent) Disks
1988年由加利福尼亞大學伯克利分校( University ofCalifornia-Berkeley) “ A Case for RedundantArrays of Inexpensive Disks”。
多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供
RAID
提高IO能力:
磁盤并行讀寫
提高耐用性;
磁盤冗余來實現
級別:多塊磁盤組織在一起的工作方式有所不同
RAID實現的方式:
外接式磁盤陣列:通過擴展卡提供適配能力
內接式RAID:主板集成RAID控制器
安裝OS前在BIOS里配置
Software RAID:通過OS實現
RAID級別:磁盤組織形式
RAID-0:條帶卷, strip
RAID-1: 鏡像卷, mirror
RAID-2
..
RAID-5 至少3塊 相當于其中1塊校驗
RAID-6 至少4塊 相當于其中2塊校驗
RAID-10(RAID-1,RAID-0)
RAID-01(RAID-0,RAID-1)
chunk
RAID-0:
讀、寫性能提升;
可用空間: N*min(S1,S2,…)(min為磁盤當中剩余空間最小的大?。?/p>
無容錯能力
最少磁盤數: 2, 2+
一般用于非關鍵性數據例如臨時文件、swap、中間交換數據
注重:不是說數據不重要就可以RAID-0,相關業務重要也不能用,例如web服務的緩存就不可以
RAID-1:
讀性能提升(都可以讀)、寫性能略有下降(需要復制);
可用空間: 1*min(S1,S2,…)
有冗余能力
最少磁盤數: 2, 2N
RAID-4:
至少3塊硬盤,其中一塊存儲校驗碼,其他存儲數據
多塊數據盤異或運算值,存于專用校驗盤
有冗余能力(允許最多1塊)
RAID-5:
讀、寫性能提升
可用空間: (N-1)*min(S1,S2,…)
有容錯能力:允許最多1塊磁盤損壞
最少磁盤數: 3, 3+
RAID-6:
讀、寫性能提升
可用空間: (N-2)*min(S1,S2,…)
有容錯能力:允許最多2塊磁盤損壞
最少磁盤數: 4, 4+
RAID混合類型級別
RAID-10:(推薦使用的級別)
讀、寫性能提升
可用空間: N*min(S1,S2,…)/2
有容錯能力:每組鏡像最多只能壞一塊
最少磁盤數: 4, 4+
RAID-01
RAID-50(數據不關鍵,但是性能要求高使用可以還可以)
RAID7: 可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立運行,理論上性能最高的RAID模式
JBOD: Just a Bunch Of Disks
功能:將多塊磁盤的空間合并一個大的連續空間使用
可用空間: sum(S1,S2,…)
常用級別: RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD
軟RAID
mdadm:為軟RAID提供管理界面,為空余磁盤添加冗余
結合內核中的md(multi devices)
RAID設備可命名為/dev/md0、 /dev/md1、 /dev/md2、/dev/md3等等
軟件RAID的實現
mdadm:模式化的工具
命令的語法格式: mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID級別: LINEAR(線性方式JBOD), RAID0, RAID1, RAID4,RAID5, RAID6, RAID10
模式:
創建:-C
裝配: -A
監控: -F
管理:-f(模擬損壞), -r(移除), -a(增加)
查詢:-D
<raiddevice>: /dev/md#
<component-devices>: 任意塊設備
-C: 創建模式
-n #: 使用#個塊設備來創建此RAID;(此數量不包含冗余空閑盤數)
-l #:指明要創建的RAID的級別;
-a {yes|no}:自動創建目標RAID設備的設備文件;
-c CHUNK_SIZE: 指明塊大??;
-x #: 指明冗余空閑盤的個數;
例如:
#mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{7,8,9,10}
-D:顯示raid的詳細信息;
mdadm -D /dev/md#
觀察md的狀態:
cat /proc/mdstat
可以使用watch命令觀測命令的執行過程
watch -n1 'cat /proc/mdstat' 每過一秒刷新查看命令執行情況
管理模式:
-f: 標記指定磁盤為損壞
例如:#mdadm -f /dev/md0 /dev/sda10
-a: 添加磁盤(組內成員的重新添加)
例如:#mdadm /dev/md0 -a /dev/sda10
-r: 移除磁盤
例如:#mdadm /dev/md0 -r /dev/sda10
停止md設備:
mdadm -S /dev/md#
軟RAID配置實例
使用mdadm創建并定義RAID設備
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
用文件系統對每個RAID設備進行格式化
#mke2fs -j /dev/md0
測試RAID設備
mdadm允許檢查RAID設備的狀況
#mdadm –detail|D /dev/md0
增加新的成員
#mdadm –G /dev/md0 –n4 -a /dev/sdf1
軟RAID測試和修復
模擬磁盤故障
#mdadm /dev/md0 -f /dev/sda1
移除磁盤
#mdadm /dev/md0 –r /dev/sda1
從軟件RAID磁盤修復磁盤故障
替換出故障的磁盤然后開機
在備用驅動器上重建分區
#mdadm /dev/md0 -a /dev/sda1
mdadm、 /proc/mdstat及系統日志信息
軟RAID管理
生成配置文件: mdadm –D –s >> /etc/mdadm.conf
停服務: mdadm –S /dev/md0
激活: mdadm –A –s /dev/md0 激活
強制啟動: mdadm –R /dev/md0
刪除raid信息: mdadm –zero-superblock /dev/sdb1
邏輯卷管理器( LVM)
允許對卷進行方便操作的抽象層,包括重新設定
文件系統的大小
允許在多個物理設備間重新組織文件系統
將設備指定為物理卷
用一個或者多個物理卷來創建一個卷組
物理卷是用固定大小的物理區域( Physical Extent,PE)來定義的
在物理卷上創建的邏輯卷是由物理區域( PE)組成
可以在邏輯卷上創建文件系統
LVM: Logical Volume Manager, Version: 2
dm: device mapper: 將一個或多個底層塊設備組織成一個
邏輯設備的模塊
設備名: /dev/dm-#
軟鏈接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
LVM更改文件系統的容量
LVM可以彈性的更改LVM的容量通過交換PE來進行資料的轉換,將原來LV內的PE轉移到其他的設備中以降低LV的容量,或將其他設備中的PE加到LV中以加大容量
刪除邏輯卷
刪除邏輯卷必須先刪除LV,再刪除VG,最后刪除PV
pv
pv管理工具
顯示pv信息
pvs [ /dev/DEVICE ]:簡要pv信息顯示
pvdisplay [ /dev/DEVICE ]:顯示物理卷
創建pv物理卷
pvcreate /dev/DEVICE
轉移物理卷pe上的數據至別的pv上
pvmove /dev/DEVICE
刪除物理卷
pvremove /dev/DEVICE
掃描物理卷
pcscan
檢測物理卷
pvck
vg管理工具
顯示卷組
vgs :簡要vg信息顯示
vgdisplay 顯示vg
創建卷組
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
-s:指定pe大?。J4MiB)
例如:vgcreate myvg /dev/sda3
管理卷組
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] 卷組擴展
例如:#vgextend myvg /dev/sda5
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] 卷組縮減
例如:#vgreduce myvg /dev/sda5
vgsplit 卷組切割
vgrename 卷組重命名
刪除卷組
vgremove
先做pvmove,再做vgremove
掃描卷組
vgscan
檢測卷組
vgck
lv管理工具
顯示邏輯卷
lvs 簡要lv信息顯示
lvdisplay 顯示lv
創建邏輯卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
例如:lvcreate -L 5G -n lv0 myvg
刪除邏輯卷
lvremove /dev/VG_NAME/LV_NAME
掃描邏輯卷
lvscan
擴展和縮減邏輯卷
擴展邏輯卷:
# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
縮減邏輯卷:
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount /dev/VG_NAME/LV_NAME MOUNT_POINT
調整邏輯卷大小
lvresize
重設文件系統大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
創建邏輯卷實例
fdisk /dev/sda
n創建分區,t類型8e
創建物理卷
pvcreate /dev/sda3
為卷組分配物理卷
vgcreate vg0 /dev/sda3
從卷組創建邏輯卷
lvcreate -L 256M -n data vg0
mke2fs -j /dev/vg0/data
mount /dev/vg0/data /mnt/data
邏輯卷管理器快照
快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝
對于需要備份或者復制的現有數據集臨時拷貝以及其它操作來說,快照是最合適的選擇。
快照只有在它們和原來的邏輯卷不同時才會消耗空間。
在生成快照時會分配給它一定的空間,但只有在原來的邏輯卷或者快照有所改變才會使用這些空間
當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。
快照中只含有原來的邏輯卷中更改的數據或者自生成快照后的快照中更改的數據
建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可以使用lvextend放大快照。
能夠序列化的數據才能存儲在磁盤上
邏輯卷管理器快照
快照就是將當時的系統信息記錄下來,就好像照相一般,若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享。
由于快照區與原本的LV共用很多PE的區塊,因此快照去與被快照的LV必須要要在同一個VG上!系統恢復的時候的文件數量不能高于快照區的實際容量。
使用LVM快照
為現有邏輯卷創建快照
#lvcreate -L #[mMgGtT] -s -n snap-data -p r original_lv_name
掛載快照
#mkdir -p /mnt/snap
#mount -o ro /dev/vg0/snap-data /mnt/snap
刪除快照
#umount /mnt/databackup
#lvremove /dev/vg0/databackup
1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
2、 新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能
一、作業:
1:創建一個可用空間為1G的RAID1設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 100G 0 part / ├─sda3 8:3 0 4G 0 part [SWAP] ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 20G 0 part /testdir sdb 8:16 0 200G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sde 8:64 0 20G 0 disk sdf 8:80 0 20G 0 disk sr0 11:0 1 7.2G 0 rom [root@localhost ~]# fdisk /dev/sdc 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1):1 起始 扇區 (2048-41943039,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+1G 分區 1 已設置為 Linux 類型,大小設為 1 GiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# fdisk /dev/sdd 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 Device does not contain a recognized partition table 使用磁盤標識符 0x4d64216a 創建新的 DOS 磁盤標簽。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1):1 起始 扇區 (2048-41943039,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+1G 分區 1 已設置為 Linux 類型,大小設為 1 GiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# fdisk /dev/sde 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1):1 起始 扇區 (2048-41943039,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+1G 分區 1 已設置為 Linux 類型,大小設為 1 GiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/sd{c,d,e}1 mdadm: /dev/sdc1 appears to contain an ext2fs file system size=5242880K mtime=Thu Sep 1 01:06:56 2016 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@localhost ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri Sep 2 08:54:13 2016 Raid Level : raid1 Array Size : 1047552 (1023.17 MiB 1072.69 MB) Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Sep 2 08:54:18 2016 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 66a8159b:6b4c91d2:0b38312f:10694816 Events : 17 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 49 1 active sync /dev/sdd1 2 8 65 - spare /dev/sde1 [root@localhost ~]# mkfs.ext4 /dev/md0 mke2fs 1.42.9 (28-Dec-2013) 文件系統標簽= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 261888 blocks 13094 blocks (5.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~]# mdadm –D –s >> /etc/mdadm.conf [root@localhost ~]# mkdir /backup [root@localhost ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jul 26 04:42:29 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=68200b07-fec2-4be9-95a7-79fba9e46abf / xfs defaults 0 0 UUID=de6b3e61-2dd2-4699-82c2-cb20d4b3ea1f /boot xfs defaults 0 0 UUID=b43f466d-a800-45b2-abb7-956252340786 /testdir xfs defaults 0 0 UUID=ee28f7a7-70a5-4f52-a3c2-887e1edf2bae swap swap defaults 0 0 UUID="e1fbc519-a5d4-4993-bd0a-2b314a447d19" /backup ext4 defaults 0 0 [root@localhost ~]# mount /dev/md0 /backup/ [root@localhost ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/sda2 100G 4.1G 96G 5% / devtmpfs 899M 0 899M 0% /dev tmpfs 913M 84K 913M 1% /dev/shm tmpfs 913M 9.0M 904M 1% /run tmpfs 913M 0 913M 0% /sys/fs/cgroup /dev/sda5 20G 33M 20G 1% /testdir /dev/sda1 197M 139M 59M 71% /boot tmpfs 183M 20K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0 /dev/md0 991M 2.6M 922M 1% /backup
2:創建由三塊硬盤組成的可用空間為2G的RAID5設備,要求其chunk大小為256k,文件系統為ext4,開機可自動掛載至/mydata目錄
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 100G 0 part / ├─sda3 8:3 0 4G 0 part [SWAP] ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 20G 0 part /testdir sdb 8:16 0 200G 0 disk sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sde 8:64 0 20G 0 disk sdf 8:80 0 20G 0 disk sr0 11:0 1 7.2G 0 rom /run/media/root/CentOS 7 x86_64 [root@localhost ~]# fdisk /dev/sdc 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-41943039,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+2G 分區 1 已設置為 Linux 類型,大小設為 2 GiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# fdisk /dev/sdd 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-41943039,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+2G 分區 1 已設置為 Linux 類型,大小設為 2 GiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# fdisk /dev/sde 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-41943039,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+2G 分區 1 已設置為 Linux 類型,大小設為 2 GiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# mdadm -C /dev/md0 -a yes -n 3 -l 5 -c 256 /dev/sd{c,d,e}1 mdadm: /dev/sdc1 appears to contain an ext2fs file system size=5242880K mtime=Thu Sep 1 01:06:56 2016 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@localhost ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri Sep 2 19:30:55 2016 Raid Level : raid5 Array Size : 4190208 (4.00 GiB 4.29 GB) Used Dev Size : 2095104 (2046.34 MiB 2145.39 MB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri Sep 2 19:31:20 2016 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 256K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 27fbade1:fe212fbb:fcc95220:3f9832ac Events : 18 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 49 1 active sync /dev/sdd1 3 8 65 2 active sync /dev/sde1 [root@localhost ~]# mkfs.ext4 /dev/md0 mke2fs 1.42.9 (28-Dec-2013) 文件系統標簽= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=64 blocks, Stripe width=128 blocks 262144 inodes, 1047552 blocks 52377 blocks (5.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=1073741824 32 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (16384 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~]# mdadm -D -s >> /etc/mdadm.conf [root@localhost ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jul 26 04:42:29 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=68200b07-fec2-4be9-95a7-79fba9e46abf / xfs defaults 0 0 UUID=de6b3e61-2dd2-4699-82c2-cb20d4b3ea1f /boot xfs defaults 0 0 UUID=b43f466d-a800-45b2-abb7-956252340786 /testdir xfs defaults 0 0 UUID=ee28f7a7-70a5-4f52-a3c2-887e1edf2bae swap swap defaults 0 0 UUID="f3445f57-4cbd-45dc-9175-6f188f30a149" /backup ext4 defaults 0 0 [root@localhost ~]# mount /dev/md0 /backup/
3、創建和擴展邏輯卷
創建并檢查pv
[root@localhost etc]# pvcreate /dev/sdc WARNING: ext4 signature detected on /dev/sdc at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdc. WARNING: dos signature detected on /dev/sdc at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/sdc. Physical volume "/dev/sdc" successfully created [root@localhost etc]# pvs PV VG Fmt Attr PSize PFree /dev/sdc vg0 lvm2 a-- 20.00g 20.00g
創建并檢查vg
[root@localhost etc]# vgcreate vg0 /dev/sdc Volume group "vg0" successfully created [root@localhost etc]# vgs VG #PV #LV #SN Attr VSize VFree vg0 1 0 0 wz--n- 20.00g 20.00g
創建并檢查lv
[root@localhost etc]# lvcreate -L 19G -n lv0 vg0 WARNING: ext4 signature detected on /dev/vg0/lv0 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/vg0/lv0. Logical volume "lv0" created. [root@localhost etc]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv0 vg0 -wi-a----- 19.00g
格式化邏輯卷為ext4文件系統并掛載使用
[root@localhost etc]# mkfs.ext4 /dev/vg0/lv0 mke2fs 1.42.9 (28-Dec-2013) 文件系統標簽= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1245184 inodes, 4980736 blocks 249036 blocks (5.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=2153775104 152 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost etc]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jul 26 04:42:29 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=68200b07-fec2-4be9-95a7-79fba9e46abf / xfs defaults 0 0 UUID=de6b3e61-2dd2-4699-82c2-cb20d4b3ea1f /boot xfs defaults 0 0 UUID=b43f466d-a800-45b2-abb7-956252340786 /testdir xfs defaults 0 0 UUID=ee28f7a7-70a5-4f52-a3c2-887e1edf2bae swap swap defaults 0 0 UUID="5371c2fd-288b-4094-b567-215a1787f88d" /backup ext4 defaults 0 0 [root@localhost etc]# mount /dev/vg0/lv0 /backup
擴展邏輯卷20G
首先卸載邏輯卷
因為vg0卷組內沒有20G空間所以要添加新的pv
添加新的pv并檢查
[root@localhost etc]# pvcreate /dev/sdd WARNING: dos signature detected on /dev/sdd at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/sdd. Physical volume "/dev/sdd" successfully created [root@localhost etc]# pvs PV VG Fmt Attr PSize PFree /dev/sdc vg0 lvm2 a-- 20.00g 1020.00m /dev/sdd lvm2 --- 20.00g 20.00g
將新添加的pv加入到vg0內,擴展vg0
[root@localhost etc]# vgextend vg0 /dev/sdd Volume group "vg0" successfully extended [root@localhost etc]# vgs VG #PV #LV #SN Attr VSize VFree vg0 2 1 0 wz--n- 39.99g 20.99g
擴展lv0
[root@localhost etc]# lvextend -L +19G /dev/vg0/lv0 Size of logical volume vg0/lv0 changed from 20.00 GiB (5120 extents) to 39.00 GiB (9984 extents). Logical volume lv0 successfully resized. [root@localhost etc]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv0 vg0 -wi-a----- 39.00g
擴展文件系統
[root@localhost etc]# e2fsck -f /dev/vg0/lv0 e2fsck 1.42.9 (28-Dec-2013) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄連接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/vg0/lv0: 11/1245184 files (0.0% non-contiguous), 122210/4980736 blocks [root@localhost etc]# resize2fs /dev/vg0/lv0 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/vg0/lv0 to 10223616 (4k) blocks. The filesystem on /dev/vg0/lv0 is now 10223616 blocks long. [root@localhost etc]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 100G 0 part / ├─sda3 8:3 0 4G 0 part [SWAP] ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 20G 0 part /testdir sdb 8:16 0 200G 0 disk sdc 8:32 0 20G 0 disk └─vg0-lv0 253:0 0 39G 0 lvm sdd 8:48 0 20G 0 disk └─vg0-lv0 253:0 0 39G 0 lvm sde 8:64 0 20G 0 disk sdf 8:80 0 20G 0 disk sr0 11:0 1 7.2G 0 rom /run/media/root/CentOS 7 x86_64
重新掛載使用
[root@localhost etc]# mount /dev/vg0/lv0 /backup/
原創文章,作者:NameLess,如若轉載,請注明出處:http://www.www58058.com/43020