天天看點

linux邏輯卷注意切割機關的問題,在對邏輯卷切割時有兩種計量機關,

部署邏輯卷

常見的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

繼續閱讀