天天看點

擴充虛拟化磁盤空間

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

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數)。

(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 ---

  Metadata Areas        2

  Metadata Sequence No  2

  Cur PV                2

  Act PV                2

  VG Size               1.98 GiB #整體VG容量的大小

  Total PE              254

  Alloc PE / Size       0 / 0    #配置設定出去的PE數量

  Free  PE / Size       254 / 1.98 GiB #沒有配置設定出去的PE數量

(2)建立LV

 lvcreate -L +1G  -n  v_home v_vg 

【四】、放大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容量擴充到整個檔案系統中。

說明: 在xfs檔案系統中,隻能增大分區而不能減小。

resize2fs指令            針對的是ext2、ext3、ext4檔案系統

xfs_growfs指令         針對的是xfs檔案系統

xfs_repair進行修複

     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)使用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------------------------------------------------------

繼續閱讀