擴展虛擬化磁盤空間

本來想自己寫一下今天的過程,發現有一篇理論和操作性俱佳的文件,遂轉之如下,個人實際操作比較簡單,也放在最後了,權當記錄:

LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和 分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕鬆管理磁盤分區,如:將若干個磁盤分區連接爲一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系 統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的 文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。

     物理存儲介質(PhysicalStorageMedia)
           指系統的物理存儲設備:磁盤,如:/dev/hda、/dev/sda等,是存儲系統最底層的存儲單元。
    
物理卷(Physical Volume,PV)
          指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
     卷組(Volume Group,VG)
           類似於非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成。可以在卷組上創建一個或多個LV(邏輯卷)。
    
邏輯卷(Logical Volume,LV)
           類似於非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。
     物理塊(Physical Extent,PE)
          每一個物理卷PV被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。所以物理卷(PV)由大小等同的基本單元PE組成。
    
邏輯塊(Logical Extent,LE)LVM抽象模型
        邏輯卷LV也被劃分爲可被尋址的基本單位,稱爲LE。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。
  【二】LVM 參數:

 (1)【PV階段參數】

       pvchange      Change attributes of a Physical Volume.
       pvck              用來檢測物理卷的LVM元數據的一致性。默認情況下,物理卷中的前4個扇區保存着LVM卷標.
       pvcreate       用於將物理硬盤分區初始化爲物理卷,以便LVM使用
       pvdisplay      用於顯示物理卷的屬性 -s以短格式輸出  -m:顯示PE到LE的映射.
       pvmove        Move Physical Extents.
       pvremove     Remove a Physical Volume.
       pvresize       Resize a disk or partition in use by LVM2.
       pvs               Report information about Physical Volumes.
       pvscan         Scan all disks for Physical Volumes.
 (2)【VG階段參數】
       vgcfgbackup   Backup Volume Group descriptor area.
       vgcfgrestore  Restore Volume Group descriptor area.
       vgchange      vgchange命令用於修改卷組的屬性,經常被用來設置卷組是處於活動狀態或非活動狀態。處於活動狀態的卷組無法被刪除,必須使用vgchange命令將卷組設置爲非活動狀態後才能刪除;

       例如: vgchange -ay  vg1      #將卷組"vg1"設置爲活動狀態 (-an 設置爲非活動狀態 )

       vgck                   Check Volume Group metadata.
       vgconvert          Convert Volume Group metadata format.
       vgcreate            用於創建LVM卷組。-l:卷組上允許創建的最大邏輯卷數; -p:卷組中允許添加的最大物理卷數; -s:卷組上的物理卷的PE大小。例如:vgcreate -s 16M  vg1 /dev/sdb1
       vgdisplay           Display attributes of Volume Groups.
       vgexport            Make volume Groups unknown to the system.
       vgextend           向卷組中添加物理卷(PV)來增加捲組(VG)的容量.
       vgimport            Make exported Volume Groups known to the system.
       vgimportclone  Import and rename duplicated Volume Group (e.g. a hardware snapshot).
       vgmerge           Merge two Volume Groups.
       vgmknodes      Recreate Volume Group directory and Logical Volume special files
       vgreduce         刪除LVM卷組中的物理捲來減少卷組容量。不能刪除LVM卷組中剩餘的最後一個物理卷.
       vgremove      用於用戶刪除LVM卷組。當要刪除的卷組上已經創建了邏輯卷時,vgremove命令需要進行確認刪除,防止誤刪除數據。
       vgrename      Rename a Volume Group 例如:vgrename vg vg1  把vg的名字改爲vg1
       vgs                 Report information about Volume Groups.
       vgscan           Scan all disks for Volume Groups and rebuild caches.
       vgsplit            Split a Volume Group into two, moving any logical volumes from one Volume Group to another  by  moving  entire
                           Physical Volumes.

  (3)【LV階段參數】

       lvchange        Change attributes of a Logical Volume.
       lvconvert        Convert a Logical Volume from linear to mirror or snapshot.
       lvcreate          用於創建LVM的邏輯卷. -L:指定邏輯卷的大小,單位爲“kKmMgGtT”字節;-l:指定邏輯卷的大小(PE數)。 
                              lvceate [ -L l ] [-n  LV 名稱]  VG 名稱 
       lvdisplay         Display attributes of a Logical Volume.
       lvextend         在線擴展邏輯卷的空間大
       lvreduce        用於減少LVM邏輯卷佔用的空間大小. 收縮邏輯卷的空間大小有可能會刪除邏輯捲上已有的數據;  -L:指定邏輯卷的大小,單位                                          爲“kKmMgGtT”字節;-l:指定邏輯卷的大小(PE數)。

       lvmchange     Change attributes of the Logical Volume Manager.
       lvmconfig       Display the configuration information after loading    
       lvmdiskscan   Scan for all devices visible to LVM2.
       lvmdump       Create lvm2 information dumps for diagnostic purposes.
       lvremove       刪除一個LV
       lvrename       改LV名.
       lvresize          對LV進行容量大小的調整。
       lvs                  Report information about Logical Volumes.
       lvscan            Scan (all disks) for Logical Volumes.

 【三】創建PV、VG、LV
  fdisk -l
#fdisk /dev/sda(..sdb..sdc..sdd) -----p---n--t--8e---p--w--- (設置硬盤的Linux LVM 8e)
/dev/sdb1            2048     2099199     1048576   8e  Linux LVM
/dev/sdb2         2099200     4196351     1048576   8e  Linux LVM
/dev/sdb3         4196352     6293503     1048576   8e  Linux LVM
/dev/sdb4         6293504    10485759     2096128   8e  Linux LVM
(1)創建PV:
[root@localhost ~]# pvcreate /dev/sdb1 //可以dev/sdb{1,2,3,4}
  Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvscan  //查看PV信息
  PV /dev/sda2   VG cl              lvm2 [39.00 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [1.00 GiB]
[root@localhost ~]# pvdisplay  #查看PV詳細信息
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               cl
  PV Size               39.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              9983
  Free PE               0
  Allocated PE          9983
  PV UUID               YWKAcK-TqHD-94kq-lzVi-8a2g-s188-dmtO2a
   
  "/dev/sdb1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
[root@localhost ~]# pvremove /dev/sdb3 #刪除PV
  Labels on physical volume "/dev/sdb3" successfully wiped.

(2)創建VG
(1)vgcreate -s 8M  v_vg /dev/sdb1 ##新建一個v_vg VG 指定一個PE爲8M(默認4M)
[root@localhost ~]# pvdisplay 
-- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               v_vg
  PV Size               1.00 GiB / not usable 8.00 MiB
  Allocatable           yes  #是否已分配
  PE Size               8.00 MiB #PE 8M
  Total PE              127
  Free PE               127 #沒有被LV用掉的PE
  Allocated PE          0 #尚可分配出去的PE數量
  PV UUID               NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
[root@localhost ~]# vgdisplay #查看VG的信息
--- Volume group ---
  VG Name               v_vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               1016.00 MiB
  PE Size               8.00 MiB
  Total PE              127
  Alloc PE / Size       0 / 0   
  Free  PE / Size       127 / 1016.00 MiB
  VG UUID               JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX
[root@localhost ~]# vgextend  v_vg /dev/sdb2  #把PV加入VG中
  --- Volume group ---
  VG Name               v_vg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  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               1.98 GiB #整體VG容量的大小
  PE Size               8.00 MiB
  Total PE              254
  Alloc PE / Size       0 / 0    #分配出去的PE數量
  Free  PE / Size       254 / 1.98 GiB #沒有分配出去的PE數量

  VG UUID               JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX

(2)創建LV
 lvcreate -L +1G  -n  v_home v_vg 

  格式化文件系統和掛載:   mkfs.ext4  /dev/v_vg/v_home    mount  /dev/v_vg/v_home  /mnt
  備註:設備是放在/dev/mapper/目錄下

【四】、放大LV容量和縮小LV容量
 lvresize -L +400M /dev/v_vg/v_home #給添加400M
LV已經擴展到400M,但是文件沒有相對的增加。
dumpe2fs /dev/v_vg/v_home 
resize2fs /dev/v_vg/v_home ##完整的進行LV容量擴充到整個文件系統中。

  縮小LV容量: 
    先卸載umount   
    e2fsck -f /dev/v_vg/v_home  #進行磁盤檢查
    resize2fs /dev/v_vg/v_home 2G  調整LV大小並重建文件系統 
    lvresize -L -400M /dev/v_vg/v_home  減小LV容量

說明: 在xfs文件系統中,只能增大分區而不能減小。
resize2fs命令            針對的是ext2、ext3、ext4文件系統
xfs_growfs命令         針對的是xfs文件系統
xfs_repair進行修復

  備註:  1)ext2/ext3/ext4文件系統的調整命令是resize2fs(增大和減小都支持)centos6圖形界面: system-config-lvm

     lvextend -L 120G /dev/v_vg/v_home     //增大至120G
lvextend -L +20G /dev/v_vg/v_home      //增加20G
lvreduce -L 50G /dev/v_vg/h_home      //減小至50G
lvreduce -L -8G /dev/v_vg/v_home      //減小8G
resize2fs /dev/v_vg/v_home            //執行調整

        2)xfs文件系統的調整命令是xfs_growfs(只支持增大)
         lvextend -L 120G /dev/v_vg/h_home        //增大至120G
         lvextend -L +20G /dev/v_vg/h_home        //增加20G
         xfs_growfs /dev/v_vg/h_home            //執行調整
         則是有進程佔用/home,使用如下命令來終止佔用進程: fuser -m -k /home

   xfs文件系統只支持增大分區空間的情況,不支持減小的情況(切記!!!!!)。硬要減小的話,只能在減小後將邏輯分區重新通過mkfs.xfs命令重新格式化才能掛載上,這樣的話這個邏輯分區上1)查看分區空間。如下可知是xfs文件系統(df的-T參數就能看出文件格式)

2)使用vgdisplay命令查看系統上的空閒空間
xfs:

xfs相關常用命令
fs_admin: 調整 xfs 文件系統的各種參數 
xfs_copy: 拷貝 xfs 文件系統的內容到一個或多個目標系統(並行方式) 
xfs_db: 調試或檢測 xfs 文件系統(查看文件系統碎片等) 
xfs_check: 檢測 xfs 文件系統的完整性 
xfs_bmap: 查看一個文件的塊映射 
xfs_repair: 嘗試修復受損的 xfs 文件系統 
xfs_fsr: 碎片整理 
xfs_quota: 管理 xfs 文件系統的磁盤配額 
xfs_metadump: 將 xfs 文件系統的元數據 (metadata) 拷貝到一個文件中 
xfs_mdrestore: 從一個文件中將元數據 (metadata) 恢復到 xfs 文件系統 
xfs_growfs: 調整一個 xfs 文件系統大小(只能擴展) 
xfs_freeze 暫停(-f)和恢復(-u)xfs 文件系統
xfs_logprint: 打印xfs文件系統的日誌 
xfs_mkfile: 創建xfs文件系統 
xfs_info: 查詢文件系統詳細信息 
xfs_ncheck: generate pathnames from i-numbers for XFS 
xfs_rtcp: XFS實時拷貝命令 
xfs_io: 調試xfs I/O路徑  
————————————————
版權聲明:本文爲CSDN博主「Resines」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/genglei1022/article/details/78065427

------------------------------------------Start------------------------------------------------------
一、分區新添加的磁盤
1.查看磁盤: df -lh

2.分區:fdisk /dev/sda
具體是sda還是sdb亦或是hda等,要看您的磁盤類型和序號
A.輸入 n
B.輸入 p
C.輸入 分區號3、4默認3
D.輸入 t 選擇文件類型
E.輸入 8e
F.輸入 p
G.輸入 w

3.掛載磁盤
A.檢查分區文件類型默認xfs
df -T /dev/sda4
B.新磁盤上創建xfs文件系統
mkfs.xfs /dev/sda4

二、擴展Linux下的磁盤空間
1.創建PV
pvcreate /dev/sda4
pvdisplay

2.查看VG詳情,並將PV加入VG
vgdisplay
vgextend centos /dev/sda4 #此處的centos爲VG Name,/dev/sda4爲新的PV Name

3.查看LV詳情
lvdisplay

4.擴展邏輯卷
lvextend /dev/mapper/centos-root /dev/sda4

5.調整文件系統大小,我的測試環境是xfs文件系統,使用xfs_growfs命令調整
xfs_growfs /dev/mapper/centos-root

6.最後確認存儲空間是否擴容成功
df -lh
------------------------------------------End------------------------------------------------------

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