部署邏輯卷
常見的lvm部署指令
功能/指令 | 實體卷管理 | 卷組管理 | 邏輯卷管理 |
---|---|---|---|
掃描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
顯示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
擴充 | vgextend | lvextend | |
縮小 | vgreduce | lvreduce |
讓添加的硬碟支援lvm技術
pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
建立卷組 juanzu1,并将兩塊硬碟添加進去,然後檢視卷組的狀态
[root@bogon ~]# vgcreate juanzu1 /dev/sdb /dev/sdc
Volume group "juanzu1" successfully created
[root@bogon ~]# vgdisplay juanzu1
--- Volume group ---
VG Name juanzu1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID tCEC2h-jBO1-TrJ1-uFXt-VSLn-C3Ua-c5hfxm
#如何修改 PE Size(邏輯卷擴縮容的基本機關)
vgcreate -s 16M 卷組名 /dev/sd(a1,b1) #建立的時候就指定PE Size
切割出一個150mb的邏輯卷裝置
注意切割機關的問題,在對邏輯卷切割時有兩種計量機關,
容量為機關使用 -L (- l +100%FREE #把剩餘的容量都用光)
基本單元的個數為機關使用 -l(每個單元大小預設是4mb)
[root@bogon ~]# lvcreate -n aa -l 37 juanzu1
Logical volume "aa" created
#在卷組juanzu1 建立一個名為aa的邏輯卷,大小是4*37
#把生成的邏輯卷進行格式化,然後挂載目錄使用
#Linux系統會把LVM中的邏輯卷裝置存放在/dev裝置目錄中(實際上是做了一個符号連結),同時會以卷組的名稱來建立一個目錄,其中儲存了邏輯卷的裝置映射檔案(即/dev/卷組名稱/邏輯卷名稱)
[root@bogon ~]# mkfs.xfs /dev/juanzu1/aa
meta-data=/dev/juanzu1/aa isize=256 agcount=4, agsize=9472 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
。。。。。。
[root@bogon ~]# mount /dev/juanzu1/aa /raid5/
[root@bogon ~]# df -h
/dev/mapper/juanzu1-aa 145M 7.6M 138M 6% /raid5
[root@bogon ~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab
###xfs
lvcreate -n xfs -l 25 juanzu1
mkfs.xfs /dev/juanzu1/xfs
mount /dev/juanzu1/xfs /xfs
實體卷擴容
pvcrate /dev/新分區 #把新的分區加入到邏輯卷中
vgextend 卷組名 /dev/新分區
lvextend -L 24G /dev/vg0/lv0 #把lv0 擴充到24g -L 擴充到多大 (mb gb為機關)
lvextend -l pe_size /dev/vg0/lv0 #把lv0 增加多少空間 -l增加多少 (pe_size為機關)
resize2fs /dev/vg0/lv0 #把剛加入卷的空間格式化為和原來空間一樣的檔案系統
lvextend -r -l +100%FREE /dev/vg0/lv0 # -r=resize2fs /dev/vg0/lv0
df -h
部署邏輯卷xfs
vgcreate juanzu /dev/sdb /dev/sdc
lvcreate -n xfs_test -L 50m juanzu
mkfs.xfs /dev/juanzu/xfs_test
擴大邏輯卷xfs,xfs邏輯卷無法縮小
[root@bogon /]# lvextend -L 200m /dev/juanzu/xfs
Extending logical volume xfs to 200.00 MiB
Logical volume xfs successfully resized
[root@bogon /]# xfs_growfs /dev/juanzu/xfs -D BLOCK塊
......
data blocks changed from 51200 to 64000
[root@bogon /]# xfs_growfs /挂載點#重新整理分區空間
lvextend -r -l +100%FREE /dev/juanzu/xfs
擴容邏輯卷ext4
擴充前請一定要記得解除安裝裝置和挂載點的關聯
[root@bogon ~]# umount /raid5/
把上一個實驗的150mb的邏輯卷擴容到300mb
lvextend -L 300mb /dev/juanjuz1/aa
檢查硬碟完整性,并重置硬碟容量
##檢查硬碟被擴容好了沒有
[root@bogon ~]# e2fsck -f /dev/juanzu1/aa
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/juanzu1/aa: 11/25688 files (9.1% non-contiguous), 8896/102400 blocks
##重置硬碟容量
[root@bogon ~]# resize2fs /dev/juanzu1/aa
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/juanzu1/aa to 155648 (1k) blocks.
The filesystem on /dev/juanzu1/aa is now 155648 blocks long.
#重新挂載檢視挂載屬性
/dev/mapper/juanzu1-aa 144M 1.6M 132M 2% /ext4
縮小邏輯卷ext4
1,先解除挂載
2,e2fsck -f /dev/卷組/邏輯卷 #檢查檔案系統的完整性
3,resize2fs /dev/卷組/邏輯卷 120M #縮小邏輯卷到120m(不能帶b)
lvreduce -L 120M /dev/卷組/邏輯卷
4,重新挂載并檢視挂載屬性
邏輯卷快照
快照卷的容量必須等于邏輯卷的容量
快照卷僅有效一次,執行還原操作後會被立即删除
1,先看卷組的資訊
vgdisplay
2,利用重定向往邏輯裝置挂載的目錄寫入一個檔案
echo "Welcome to liyang.com" > /挂載目錄/readme.txt
3,使用-s參數生成一個快照卷,使用-L參數指定切割的大小,還需在指令後加上針對那個邏輯卷的操作
lvcreate -L 120M -s -n 快照名稱 /dev/卷組/邏輯卷
lvcreate -n 快照名稱 -L 快照大小(2G) -s -p r(隻讀) /dev/卷組、邏輯卷
4,在邏輯卷中寫入資料
dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
5,執行還原操作
1,先解除挂載
2,lvconvert --merge /dev/卷組/快照名稱
3,重新挂載邏輯卷,并看挂載資訊
删除邏輯卷
1,解除挂載
2,lvremove /dev/卷組/邏輯卷 #删除邏輯卷
删除卷組
vgremove 卷名
删除實體卷裝置
pvremove /dev/sdb /dev/sdc
跨主機遷移卷組
#舊主機
pvcreate /dev/sde #添加硬碟支援lvm
vgcreate vg0 /dev/sde #建立卷組“vg0",并加入硬碟
vgdisplay vg0 #檢視卷組vg0
lvcreate -l 100%FREE -n lv0 vg0 #在卷組vg0上,建立邏輯卷lv0,-l使用全部的空間
mkfs.ext4 /dev/vg0/lv0 #格式化硬碟,并建立檔案系統
mount /dev/vg0/lv0 /test #挂載
cp -av /root/* /test/ #拷貝測試檔案
umount /test #解除挂載
vgrename vg0 vg100 #防止本機邏輯卷遷移到新主機上重名,改一下名字
lvrename /dev/vg100/lv0 /dev/vg100/lv100 #同上改名
vgchange -an vg100 #禁用邏輯卷組vg100
vgexport vg100 #導出卷組
#新主機
echo '- - -' > /sys/class/scsi_host/host0/scan #重新讀取硬碟挂載資料
vgimport vg100 #導入卷組vg100
vgchange -ay vg100 #啟用邏輯卷組vg100
mount /dev/vg100/lv100 /test #挂載lvm,并且檢視剛才的測試檔案是否存在
實驗報錯
[root@localhost ~]# mdadm /dev/md0 -a /dev/sdc
mdadm: Cannot open /dev/sdc: Device or resource busy
解決方法1:重新開機伺服器
mdadm: added /dev/sdc
擴充分區報錯:
[root@bogon ~]# xfs_growfs -L 300MB /dev/juanzu1/aa
xfs_growfs: /dev/juanzu1/aa is not a mounted XFS filesystem