溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

RHEL6.5中LVM怎么用

發(fā)布時(shí)間:2021-11-17 11:14:02 來源:億速云 閱讀:142 作者:小新 欄目:云計(jì)算

小編給大家分享一下RHEL6.5中LVM怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

   Linux用戶在安裝操作系統(tǒng)時(shí),會(huì)遇到的一個(gè)常見問題就是如何正確地評(píng)估各分區(qū)大小,以便劃分合適的硬盤空間。普通的磁盤分區(qū)管理方式在各分區(qū)劃分好后就無法改變其大小,而當(dāng)一個(gè)邏輯分區(qū)存放不下某個(gè)文件時(shí),這個(gè)文件因?yàn)槭苌蠈游募到y(tǒng)的限制,也不能跨越多個(gè)分區(qū)來存放,所以也不能同時(shí)放到別的磁盤上。或遇到某個(gè)分區(qū)空間快耗盡時(shí),解決的方法通常是使用符號(hào)鏈接,或者新建目錄外掛分區(qū)以及使用調(diào)整分區(qū)大小的工具,但這只是暫時(shí)解決辦法,沒有從根本上解決問題。其實(shí)在Linux下,利用LVM,這些問題都可以迎刃而解,用戶在無需停機(jī)的情況下就可以方便地調(diào)整各個(gè)分區(qū)大小。

一、LVM命令簡(jiǎn)介

  LVM(Logical Volume Manager)是一個(gè)應(yīng)用于Linux的內(nèi)核的邏輯卷管理器,是Linux環(huán)境下對(duì)磁盤進(jìn)行分區(qū)管理的一種機(jī)制。
  LVM中需要知道的名詞:
   1、PV(物理卷)可以是一個(gè)磁盤,一個(gè)分區(qū)。由PE(物理盤區(qū))組成,多個(gè)PV可以組成一個(gè)VG(卷組).
   2、VG(卷組)是多個(gè)物理卷組成的一個(gè)組,但是卷組不可以直接使用,需要在上面創(chuàng)建LV(邏輯卷)才可以使用。VG上可以創(chuàng)建多個(gè)LV。
   3、PE(物理盤區(qū))就像我們之前學(xué)習(xí)的磁盤的block塊,默認(rèn)是4MB。
   4、LV(邏輯卷) 是建立在卷組之上的一個(gè)可用空間。有物理邊界和邏輯邊界兩種邊界。

二、相關(guān)命令介紹

 1、物理卷PV
      pvcreate   創(chuàng)建pv              例:pvcreate /dev/sda1
      pvs       查看pv信息          例:直接在命令行里輸入pvs
      pvdisplay  查看pv詳細(xì)信息       例:pvcreate /dev/sda1
      pvmove    將pv數(shù)據(jù)移動(dòng)到其他pv  例:pvmove /dev/sda1 /dev/sda4
      pvremove   將pv刪除             例:pvremove /dev/sda1
 2、卷組VG
       如何創(chuàng)建、查看、刪除vg
      vgcreate   創(chuàng)建vg             例:vgcreate myvg  /dev/sda{m,n}
      vgs        查看vg信息       例:直接在命令行里輸入vgs
      vgdisplay  查看vg詳細(xì)信息       例:vgdisplay myvg
      vgremove   將vg刪除             例:vgremove myvg
       如何擴(kuò)展vg
       首先準(zhǔn)備好一個(gè)PV;
       然后使用vgextend 命令即可完成擴(kuò)展;
       格式: vgextend VG_NAME /PATH/TO/PV
          vgextend testvg /dev/sdb2 擴(kuò)展myvg卷組,把/dev/sda2加進(jìn)去
       如何縮減vg
      1)確定要移除的PV;
      2)將此PV上的數(shù)據(jù)轉(zhuǎn)移至其它PV;
         pvmove /path/ to /pv
      3)從卷組中將此PV移除;
         格式:vgreduce VG_NAME /PATH/TO/PV
         vgreduce testvg /dev/sdb2 縮減myvg卷組,把/dev/sda2去掉
 3、邏輯卷LV
       如何創(chuàng)建、查看、刪除lv
      lvcreate   創(chuàng)建lv              例:lvcreate lv1 /dev/myvg
      lvs       查看lv信息          例:直接在命令行里輸入lvs
      lvdisplay  查看lv詳細(xì)信息       例:vgdisplay lv1
      lvremove   將lv 移除            例:lvremove  /dev/myvg/lv1 
       如何擴(kuò)展lv

      確定需要擴(kuò)展多大空間

      確定當(dāng)前邏輯卷所在的卷組是否有足夠的空閑空間;

擴(kuò)展舉例:
1、物理邊界
lvextend -L [+]SIZE /path/to/lv
2、邏輯邊界
resize2fs /path/to/device


如何縮減lv
確定縮減的大小,但前提是至少能容納原有的所有數(shù)據(jù)。
縮減:
1)卸載并強(qiáng)行檢測(cè)文件系統(tǒng);
umount /path
e2fsck -f 
2)邏輯邊界
resize2fs /path/to/device SIZE
3)物理邊界
lvreduce -L [-]SIZE /path/to/lv


4、快照卷
1) 生命周期為整個(gè)數(shù)據(jù)時(shí)長(zhǎng);在這段時(shí)長(zhǎng)內(nèi),數(shù)據(jù)的增長(zhǎng)量不能超出快照卷大小;
2) 快照卷應(yīng)該是只讀的;
3) 跟原卷在同一卷組內(nèi);
    lvcreate
         -L    指定快照卷的大小
         -s    創(chuàng)建快照卷
         -p r  創(chuàng)建的快照卷為只讀訪問
    格式:
        lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv

三、lv之示例

1、創(chuàng)建一個(gè)分區(qū)

[root@test11 ~]# fdisk -l //查看分區(qū)的情況 
[root@test11 ~]# fdisk /dev/sda //進(jìn)行分區(qū) 
Command (m for help): n //n為添加一個(gè)分區(qū),p查看分區(qū) 
First cylinder (2898-10443, default 2898): //按【Enter】鍵決定 
Using default value 2898 //起始柱面選擇默認(rèn) 值 
Last cylinder or +size or +sizeM or +sizeK (289810443, default 10443): +2G // 給2G的大小 
Command (m for help): t //更改分區(qū)類型 
Partition number (1-5): 5 //選著分區(qū) 
Hex code (type L to list codes): l //分區(qū)類型列表 
Hex code (type L to list codes):8e //將新添加的分區(qū)標(biāo)注成lvm 
Command (m for help): p //查看分區(qū)表 
/dev/sda5 2756 2999 1959898+ 8e Linux LVM 
Command (m for help): w //保存 
[root@test11 ~]# partprobe /dev/sda //是系統(tǒng)識(shí)別分區(qū)(代替重啟) 
[root@test11 ~]# mkfs.ext4 /dev/sda5 //格式化新添加的分區(qū)


2、PV的創(chuàng)建

[root@test11 ~]# pvcreate /dev/sda5 //創(chuàng)建pv 
Writing physical volume data to disk "/dev/sda5"
Physical volume "/dev/sda5" successfully created 
[root@test11 ~]# pvs //查看當(dāng)前pv的信息 
PV VG Fmt Attr PSize PFree 
/dev/sda5 lvm2 a-- 1.87G 1.87G


3、VG的創(chuàng)建

[root@test11 ~]# vgcreate vg0 /dev/sda5 //vg0為當(dāng)前vg的名 
Volume group "vg0" successfully created 
[root@test11 ~]# vgs //查看vg的信息 
VG #PV #LV #SN Attr VSize VFree 
vg0 1 0 0 wz--n- 1.87G 1.87G


4、lv的創(chuàng)建

[root@test11 ~]# lvcreate -L 500M -n lv01 vg0 
Logical volume "lv01" created 
[root@test11 ~]# lvs //查看lv的信息 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-a- 500.00M 
[root@test11 ~]# mkfs.ext4 /dev/vg0/lv01 //格式化


5、lv的增大

[root@test11 ~]# lvextend -L +300M /dev/vg0/lv01 //(原來lv大小500M ,拉伸分區(qū)到 800M) Extending logical volume lv01 to 800.00 MB 
Logical volume lv01 successfully resized 
[root@test11 ~]# resize2fs /dev/vg0/lv01 //拉伸文件系統(tǒng) 
[root@test11 ~]# lvs 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-ao 800.00M //大小變成了800M


6、lv的減小

# umount /dev/vg0/lv01 //卸載邏輯卷/dev/vg0/lv01 
# df -h //查看 
# e2fsck -f /dev/vg0/lv01 //磁盤校驗(yàn) 
# resize2fs /dev/vg0/lv01 500M //回縮文件系統(tǒng)到 500M 
# lvreduce -L 500M /dev/vg0/lv01 //回縮分區(qū)到 500M 
WARNING: Reducing active logical volume to 500.00 MB 
THIS MAY DESTROY YOUR DATA (filesystem etc.) 
Do you really want to reduce lv01? [y/n]: y 
# lvs 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-a- 500.00M //此時(shí)已變成500M大小 
# mount /dev/vg0/lv01 /mnt/lv01 //重新掛載分區(qū) 
# df -h //查看 
# ls /mnt/lv01 //查看文件


四、lvm的關(guān)閉

[root@test11 ~]# umount /mnt/lv01 
[root@test11 ~]# lvremove /dev/vg0/lv01 //刪除lv 
Do you really want to remove active logical volume lv01? [y/n]: y 
Logical volume "lv01" successfully removed 
[root@test11 ~]# vgchange -a n vg0 //使vg0不具有active標(biāo)志 
0 logical volume(s) in volume group "vg0" now active 
[root@test11 ~]# vgremove vg0 //刪除vg 
Volume group "vg0" successfully removed 
[root@test11 ~]# pvremove /dev/sda5 //刪除pv 
Labels on physical volume "/dev/sda5" successfully wiped

五、擴(kuò)展根分區(qū)和SWAP

[root@zkdb1 ~]# pvs

  PV         VG       Fmt  Attr PSize   PFree  

  /dev/sda3  vg_zkdb1 lvm2 a--  557.46g 521.46g

[root@zkdb1 ~]# lvs

  LV   VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  root vg_zkdb1 -wi-ao---- 20.00g                                             

  swap vg_zkdb1 -wi-ao---- 16.00g                                             

[root@zkdb1 ~]# lvcreate -L 30720M vg_zkdb1

  Logical volume "lvol0" created

[root@zkdb1 ~]# lvs

  LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  lvol0 vg_zkdb1 -wi-a----- 30.00g                                             

  root  vg_zkdb1 -wi-ao---- 20.00g                                             

  swap  vg_zkdb1 -wi-ao---- 16.00g                                             

[root@zkdb1 ~]# lvextend -L +30G /dev/mapper/vg_zkdb1-root

  Extending logical volume root to 50.00 GiB

  Logical volume root successfully resized

[root@zkdb1 ~]# e2fsck -f /dev/mapper/vg_zkdb1-root

e2fsck 1.41.12 (17-May-2010)

/dev/mapper/vg_zkdb1-root is mounted.

e2fsck: Cannot continue, aborting.

[root@zkdb1 ~]# lvs

  LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  lvol0 vg_zkdb1 -wi-a----- 30.00g                                             

  root  vg_zkdb1 -wi-ao---- 50.00g                                             

  swap  vg_zkdb1 -wi-ao---- 16.00g                                             

[root@zkdb1 ~]# resize2fs /dev/mapper/vg_zkdb1-root

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/mapper/vg_zkdb1-root is mounted on /; on-line resizing required

old desc_blocks = 2, new_desc_blocks = 4

Performing an on-line resize of /dev/mapper/vg_zkdb1-root to 13107200 (4k) blocks.

The filesystem on /dev/mapper/vg_zkdb1-root is now 13107200 blocks long.

擴(kuò)展SWAP

[root@zkdb1 ~]# lvs

  LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  lvol0 vg_zkdb1 -wi-a----- 30.00g                                             

  root  vg_zkdb1 -wi-ao---- 50.00g                                             

  swap  vg_zkdb1 -wi-ao---- 16.00g                                             

[root@zkdb1 ~]# lvextend -L +16G /dev/mapper/vg_zkdb1-swap

  Extending logical volume swap to 32.00 GiB

  Logical volume swap successfully resized

[root@zkdb1 ~]# e2fsck -f /dev/mapper/vg_zkdb1-swap

e2fsck 1.41.12 (17-May-2010)

/dev/mapper/vg_zkdb1-swap is mounted.

e2fsck: Cannot continue, aborting.

[root@zkdb1 ~]# resize2fs /dev/mapper/vg_zkdb1-swap

resize2fs 1.41.12 (17-May-2010)

resize2fs: Bad magic number in super-block while trying to open /dev/mapper/vg_zkdb1-swap

Couldn't find valid filesystem superblock.

[root@zkdb1 ~]# lvs

  LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  lvol0 vg_zkdb1 -wi-a----- 30.00g                                             

  root  vg_zkdb1 -wi-ao---- 50.00g                                             

  swap  vg_zkdb1 -wi-ao---- 32.00g  

附:根分區(qū)變只讀解決辦法

1 單用戶模式

  • 輸入命令修復(fù)文件系統(tǒng):fsck -C -y

  • 修復(fù)完成后輸入命令重啟:reboot

2 重掛載

mount  -o  remount,rw 分區(qū)名即可變成讀寫

mount -o remount,rw  /

如果提示文件系統(tǒng)類型

mount -t ext3  -o remount,rw /

以上是“RHEL6.5中LVM怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI