lvm的使用

wxbtsinghua發表於2014-10-30
前面加一點自己的東西。
上次丟了一塊pv,導致整個lv出錯。
結果就是這樣
  #pvscan
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  PV /dev/sdd1        VG VolGroup00   lvm2 [465.75 GB / 465.75 GB free]
  PV unknown device   VG VolGroup00   lvm2 [399.91 GB / 399.91 GB free]
  PV /dev/sdb1        VG VolGroup00   lvm2 [465.75 GB / 465.75 GB free]
  PV /dev/sdc1        VG VolGroup00   lvm2 [465.75 GB / 465.75 GB free]
  Total: 4 [1.76 TB] / in use: 4 [1.76 TB] / in no VG: 0 [0   ]

然後想把 vgremove 重建 或  pvremove重建都不行。
後來研究了一下,需要從vg下手。發現有個這樣的命令。
vgreduce --removemissing vg名字
下面是執行結果

[root@223 /]# vgreduce --removemissing VolGroup00
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Couldn't find device with uuid 'RE3S4F-mwkG-cNmN-2mL8-6gj3-NFlz-6gwAF3'.
  Wrote out consistent volume group VolGroup00
[root@223 /]# pvscan
  PV /dev/sdd1   VG VolGroup00   lvm2 [465.75 GB / 465.75 GB free]
  PV /dev/sdb1   VG VolGroup00   lvm2 [465.75 GB / 465.75 GB free]
  PV /dev/sdc1   VG VolGroup00   lvm2 [465.75 GB / 465.75 GB free]
  Total: 3 [1.36 TB] / in use: 3 [1.36 TB] / in no VG: 0 [0   ]

然後重建lv就正常了。

今天碰到一個新情況,vg整體混亂。是用上面的方法還不行。要用 -f 引數,強制去除。
vgreduce -f --removemissing VolGroup00

第一章 介紹 略

二、物理卷管理

1、新增物理卷

使用pvcreate命令可以建立物理卷,可以在整個磁碟上建立物理卷,也可以在一個磁碟分割槽上建立物理卷。例如如果要在第二塊SCSI磁碟上建立物理卷,可以使用命令:pvcreate /dev/sdb

2、檢視物理卷

[root@demoserver dev]# pvdisplay

  --- Physical volume ---

  PV Name           /dev/hda13                        //pv名稱

  VG Name           vg_data                      //pv所屬的vg名稱

  PV Size             1.87 GB / not usable 1.96 MB    //pv的大小為1.87GB

  Allocatable          yes

  PE Size (KByte)     4096                          //物理塊大小為4MB

  Total PE           478                         //總的物理塊數

  Free PE            478                         //空閒的物理塊數

  Allocated PE        0

  PV UUID            jaVtOk-rpMb-QgbM-zx1N-DmCB-yGqm-hCVmiE

  --- Physical volume ---                           //另一個pv的資訊

  PV Name            /dev/hda14

  VG Name            vg_data

  PV Size             1.86 GB / not usable 2.12 MB

  Allocatable          yes

  PE Size (KByte)      4096

  Total PE            476

  Free PE             476

  Allocated PE         0

  PV UUID            VzjEpx-or1h-v3gN-zOCm-FnjC-eDOz-tp5YZg

共有兩個物理卷:/dev/hda13/dev/hda14,其中hda13的大小為1.87GB,物理塊大小為4096KB,總的物理塊數為478,空閒的物理塊數為478,已分配的物理塊數為0。而hda14的大小為1.86GB,物理塊大小為4096KB,總的物理塊數為476,空閒的物理塊數為476,已分配的物理塊數為0

3.刪除物理卷

如果物理卷不再需要,可以使用pvremove命令將其刪除,如下所示。

# pvremove /dev/hda16

  Labels on physical volume "/dev/hda16" successfully wiped

物理卷被刪除後,其所在的磁碟分割槽並不會被刪除。需要被刪除的物理卷必須是已經不屬於任何卷組,否則將會失敗,如下所示。

[root@demoserver dev]# pvremove /dev/hda13

  Can't pvremove physical volume "/dev/hda13" of volume group "vg_data" without-ff

三、卷組管理

1.新增捲組

物理卷建立完成後就可以開始建立卷組。卷組是由一個或多個物理卷所組成的儲存池。例如要建立一個名為vg_data的卷組,可以使用下面的命令。

# vgcreate vg_data /dev/hda13 /dev/hda14

  Volume group "vg_data" successfully created

2.擴充套件卷組的容量

當卷組中的空間不足的時候,可以使用vgextend命令往卷組中新增新的物理卷,方便地擴充套件卷組的容量,如下所示。

# vgextend vg_data /dev/hda15

  Volume group "vg_data" successfully extended

3.檢視卷組

使用vgdisplay命令可以檢視卷組的資訊。例如要檢視上例中建立的卷組vg_data,執行的命令如下所示。

# vgdisplay vg_data

  --- Volume group ---

  VG Name               vg_data                   //vg名稱

  System ID

  Format                  lvm2

  Metadata Areas         3                         //元資訊區域

  Metadata Sequence No  2

  VG Access               read/write                //訪問許可,可讀寫

  VG Status               resizable                  //VG狀態

  MAX LV                  0                        //最大的LV

  Cur LV                   0                        //當前的LV

  Open LV                 0                        //開啟的LV

  Max PV                  0                        //最大的PV

  Cur PV                   3                        //當前的PV

  Act PV                   3

  VG Size                 5.59 GB                 //VG的大小為5.59GB

  PE Size                 4.00 MB                 //物理塊的大小為4MB

  Total PE                1430                  //VG的物理塊數為1430

  Alloc PE / Size            0 / 0            //已經使用的物理塊數和大小

  Free  PE / Size         1430 / 5.59 GB          //空閒的物理塊數和大小

  VG UUID                 djgPFx-LOGa-8ZOx-diNr-hxCs-qNip-vg0Hqu

卷組vg_dat格式為lvm2,訪問許可為可讀寫,卷組大小為5.59GB,物理塊大小為4MB,總的物理塊數為1430,已分配的物理塊數為0,空閒的物理塊數為1430,大小為5.59GB

4.從卷組中刪除物理卷

透過vgreduce命令可以把VG中未被使用的PVVG中刪除,例如要從卷組vg_data中刪除物理卷hda15,如下所示。

# vgreduce vg_data /dev/hda15

  Removed "/dev/hda15" from volume group "vg_data"

如果要從卷組中刪除所有未被使用的物理卷,可以使用如下命令。

# vgreduce –a

5.刪除卷組

當卷組不再需要的時候,可以使用vgremove命令刪除。如果卷組中已經建立了LV,則系統會提示使用者確認是否要進行刪除,命令及執行結果如下所示。

# vgremove vg_data

Do you really want to remove volume group "vg_data" containing 2 logical volumes

? [y/n]: y

Do you really want to remove active logical volume "lv_data1"? [y/n]: y

                                             //確定刪除邏輯卷lv_data1

  Logical volume "lv_data1" successfully removed

Do you really want to remove active logical volume "lv_data2"? [y/n]: y

                                             //確定刪除邏輯卷lv_data2

  Logical volume "lv_data2" successfully removed

  Volume group "vg_data" successfully removed

卷組被刪除後,卷組中的所有物理卷將不屬於任何卷組,可以對這些物理捲進行刪除,命令如下所示。

# pvdisplay /dev/hda14

  "/dev/hda14" is a new physical volume of "1.86 GB"

  --- NEW Physical volume ---

  PV Name            /dev/hda14

  VG Name               //VG Name一列為空,表示該PV不屬於任何的VG

  PV Size             1.86 GB         //PV大小

  Allocatable          NO              //是否可分配

  PE Size (KByte)       0               //PE大小

  Total PE             0               //PE

  Free PE              0               //空閒的PE

  Allocated PE         0               //分配的PE

  PV UUID             VzjEpx-or1h-v3gN-zOCm-FnjC-eDOz-tp5Yzg

可以看到,物理卷hda14VG Name一列為空,表示該物理卷不屬於任何的卷組,使用者可以刪除該物理卷,或分配給其他卷組使用。

四、邏輯卷管理

邏輯卷類似於非LVM系統中的磁碟分割槽,在邏輯捲上可以建立檔案系統,檔案系統建立完成後就可以掛載到作業系統中進行使用。邏輯卷被劃分為被稱為LELogical Extents)的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。

1.新增邏輯卷

當卷組建立後,可以使用lvcreate命令在卷組上建立邏輯卷。例如要在卷組vg_data上建立一個1000MB的邏輯卷lv_data1,其命令如下所示。

# lvcreate -L 1000m -n lv_data1 vg_data

  Logical volume "lv_data1" created

除了KBMBGB這些常規單位以外,lvcreate命令還可以使用PE數作為單位。由vgdisplay可以看到卷組vg_dataPE大小為4MB,如果要建立一個大小為1000MB的邏輯卷,則需要250PE,命令如下所示。

# lvcreate -l 250 -n lv_data2 vg_data

  Logical volume "lv_data2" created

我們現在ppvodLVM使用的命令是:

#lvcreate –i 4 –I 8192 –L 1600G –n lv_data2 vg_data

-i:採用條帶模式的對映方式建立邏輯卷,該引數的值用於指定所建立的邏輯卷將對映在幾個PV上。

-I:指定使用條帶模式時所採用塊的大小,單位為KB,其值必須是:2NN≥2)。

-L:指定建立邏輯卷的大小,單位的可以用KMGT表示KBMBGBTB

-n:用來指定所建立的邏輯卷名稱,該名稱可以根據需要隨便定義。

在使用“-i”引數指定PV的個數時,一定要確認所指定的這些PV是沒有完全被分配給任何邏輯卷的,否則將建立失敗,其次若這些PV的大小不等,那麼所建立的邏輯卷只能取最小值。

這樣建立的LVM起到了軟Raid的作用,可以使IO壓力分散到各個硬碟之上,提高IO效能。

卷組和邏輯卷建立後,會在/dev目錄下建立一個以VG名稱命名的目錄,在目錄下會建立以LV名稱命名的裝置檔案,如下所示。

#ll /dev/vg_data

total 0

lrwxrwxrwx 1 root root 28 Aug 24 22:22 lv_data1 -> /dev/mapper/vg_ data-lv_data1

lrwxrwxrwx 1 root root 28 Aug 24 22:21 lv_data2 -> /dev/mapper/vg_ data-lv_data2

2.更改邏輯卷的大小

使用lvresize命令可以更改已有邏輯卷的大小。一般情況下不建議減少邏輯卷的空間,因為這樣可能會導致邏輯捲上的檔案系統中的資料丟失,所以除非使用者已經確定被減少空間中的資料不再需要或者已經把重要資料備份出來,否則不要減少邏輯卷的空間以免造成不可挽回的損失。如果要把邏輯卷lv_data1的大小增加為1500MB,可以使用下面的命令。

# lvresize -L 1500m /dev/vg_data/lv_data1

  Extending logical volume lv_data1 to 1.46 GB

  Logical volume lv_data1 successfully resized

3.檢視邏輯卷的資訊

使用lvdisplay命令可以檢視指定邏輯卷的資訊,例如要檢視邏輯卷lv_data1的資訊,命令和執行結果如下所示。

# lvdisplay /dev/vg_data/lv_data1

  --- Logical volume ---

  LV Name                 /dev/vg_data/lv_data1  //邏輯卷名稱

  VG Name             vg_data                   //邏輯卷所屬的卷組

  LV UUID                 3CrIH1-rZr6-UkNZ-1Z5n-gHw2-SM5T-by5fKg

  LV Write Access        read/write

  LV Status               available

  # open                  0

  LV Size                 1.46 GB                  //邏輯卷的大小

  Current LE              375                      //邏輯卷的邏輯塊數

  Segments                1

  Allocation               inherit

  Read ahead sectors      auto

  - currently set to         256

  Block device             253:0

可以看到,邏輯卷/dev/vg_data/lv_data1所屬的卷組為vg_data,訪問許可為可讀寫,卷組狀態為可用,邏輯卷大小為1.46GB,總的邏輯塊數為375

4.刪除邏輯卷

使用lvremove命令可以刪除指定的邏輯卷,刪除前系統會提示使用者確認。例如要刪除邏輯卷lv_data2,其命令和執行結果如下所示。

# lvremove /dev/vg_data/lv_data2

Do you really want to remove active logical volume "lv_data2"? [y/n]: y

  Logical volume "lv_data2" successfully removed

刪除後,邏輯捲上的所有資料均會被清除。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8551823/viewspace-1314739/,如需轉載,請註明出處,否則將追究法律責任。

相關文章