Linux服務器經過LVM擴展其磁盤空間

一,LVM簡介:html

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,至關於一個大硬盤來使用,當硬盤的空間不夠使用的時候,能夠繼續將其它的硬盤的分區加入其中,這樣能夠實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。linux

wKioL1Y0hZeyMHt_AADRAnCfClg793.jpg

wKioL1jQ2nWzTs5-AAJU-5M_68c984.png

與傳統的磁盤與分區相比,LVM爲計算機提供了更高層次的磁盤存儲。它使系統管理員能夠更方便的爲應用與用戶分配存儲空間。在LVM管理下的存儲卷能夠按須要隨時改變大小與移除(可能需對文件系統工具進行升級)。LVM也容許按用戶組對存儲捲進行管理,容許管理員用更直觀的名稱(如"sales'、 'development')代替物理磁盤名(如'sda'、'sdb')來標識存儲卷。列如:四個磁盤分區能夠組成一個很大的空間,而後在這些空間上劃分一些邏輯分區,當一個邏輯分區的空間不夠用的時候,能夠從剩餘空間上劃分一些空間給空間不夠用的分區使用。vim

PVphyical volume:是物理的磁盤分區bash

VG(volume group):LVM中的物理的磁盤分區,也就是PV,必須加入VG,能夠將VG理解爲一個倉庫或者是幾個大的硬盤。app

LV(logical extent):也就是從VG中劃分的邏輯分區ide

二,建立和管理LVM工具

1,建立分區ui

使用分區工具fdisk建立lvm分區,方法和建立其餘通常分區的方法同樣,區別LVM的分區類型爲8e,以下圖查看當前分區spa

wKioL1Y0gxXTxm2jAAJ7Odlc4Rw389.jpg

使用fdisk建立分區,並進入分區進行管理3d

wKiom1Y0gwujc5euAAHk1lpscp4331.jpg

wKioL1Y0g2ag3WzjAAH0lhoWWIE679.jpg

最後要保存修改

wKioL1Y0g46wQTCEAACXQhw46IE247.jpg


注意:劃分分區的類型爲8e,這是LVM的分區格式。


2,建立PV,以下圖所示: pvcreate /dev/sdb3

wKioL1Y0g9rD3xg1AACzp34nWqw568.jpg

查看剛纔建立的命令:pvdisplay(pvs或pvscan)來查看簡略信息。

wKioL1Y0hAnzN01IAAGFnVoPc-g627.jpg

[root@GJB-UAT ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree   
  /dev/sdb3  VolGroup00 lvm2 a--  100.00g 1020.00m
[root@GJB-UAT ~]# pvscan
  PV /dev/sdb3   VG VolGroup00   lvm2 [100.00 GiB / 1020.00 MiB free]
  Total: 1 [100.00 GiB] / in use: 1 [100.00 GiB] / in no VG: 0 [0   ]


3,建立和擴展VG(vgcreate VolGroup00 /dev/sdb1)若是有的話直接擴展,沒有的話先建立在擴展

[root@localhost ~]#yum -y install parted

[root@localhost ~]# partprobe    (不重啓使分區表有效)

wKiom1Y0hBGho_1DAAMclrbC0kY408.jpg

vgdisplay(vgs或vgscan)查看是否建立或擴展成功。

說明:

VG Name  VG的名稱

VG Size  VG的總大小

PE Size  PE的大小,默認爲4MB

Total PE  PE的總數量,5114 x 4MB = 19.98GB

Free PE / Size  剩餘空間大小

一樣可使用命令vgs 和vgscan 查看

[root@GJB-UAT ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree   
  VolGroup00   1   1   0 wz--n- 100.00g 1020.00m
[root@GJB-UAT ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2


4,建立LV(lvcreate  -L +100G -n lv1 VolGroup00)

[root@GJB-UAT ~]# lvcreate  -L +100G -n lv1 VolGroup00
  Logical volume "lv1" already exists in volume group "VolGroup00"
[root@GJB-UAT ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VolGroup00/lv1
  LV Name                lv1
  VG Name                VolGroup00
  LV UUID                XX9spD-gBIC-RwNY-V6Tf-xZUp-du0c-Aq4Vln
  LV Write Access        read/write
  LV Creation host, time GJB-UAT, 2017-03-21 15:15:13 +0800
  LV Status              available
  # open                 1
  LV Size                99.00 GiB
  Current LE             25344
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

注意:

-L    指定建立的LV 的大小 
-l    指定建立的LV 的PE 數量 
-n    LV的名字 

上面的意思是:從VolGroup00卷組中分出100G的空間給lv1使用

使用lvdisplay來進行查看LV的狀況。若是減小的話,只需 lvcreate  -L -100G -n lv1 VolGroup00便可。


5格式化LV( mkfs -t ext3 /dev/VolGroup00/lv1)

[root@localhost ~]# mkfs -t ext3 /dev/VolGroup00/lv1
[root@localhost ~]#mkdir /test
[root@localhost ~]#mount /dev/VolGroup00/lv1  /test
mount: /dev/mapper/VolGroup00-lv1 already mounted or /test busy
mount: according to mtab, /dev/mapper/VolGroup00-lv1 is already mounted on /test
[root@GJB-UAT ~]# df -h
文件系統              容量  已用  可用 已用%% 掛載點
/dev/sda2             9.7G  4.4G  4.8G  49% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             194M   27M  158M  15% /boot
/dev/sda5              12G  295M   11G   3% /data
/dev/mapper/VolGroup00-lv1
                       98G   19G   74G  21% /test

備註:

能夠看到剛添加的100G容量。若是是原先都有的話,能夠直接擴展就能夠了以下:

[root@localhost ~]# resize2fs  /dev/VolGroup/lv_root  #執行該重設大小,對於當前正在使用的LogVol01有效

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/VolGroup/lv_root to 3934208 (4k) blocks.

The filesystem on /dev/VolGroup/lv_root is now 3934208 blocks long.

wKioL1Y0hNqyPwlLAAEYmalDKHM285.jpg


 

6,把新分區寫入到配置文件/etc/fstab.若是系統重啓的話就能夠自動加載了。

[root@GJB-UAT ~]#vim  /etc/fstab 
# /etc/fstab
# Created by anaconda on Wed Jun 22 17:32:40 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9100c104-010a-418c-80e7-29e88fd746ce /                       ext4    defaults        1 1
UUID=d157a57e-325a-459d-ad27-a1ee880ed836 /boot                   ext4    defaults        1 2
UUID=19c71233-9130-4296-8551-72c05e14e613 /data                   ext4    defaults        1 2
UUID=a8c629c6-34bc-4c28-92e0-768bf0e0f235 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/lv1     /test                   ext3    defaults        1 2


wKioL1jQ5R6RthI9AACsYqo04Uc833.png






經常使用的命令:

[root@iZ23iod5vslZ ~]# blkid
/dev/xvda1: UUID="6634633e-001d-43ba-8fab-202f1df93339" TYPE="ext4" 
/dev/xvdb1: UUID="8c3bc2d1-429c-4c09-a501-6dffbf9250ee" TYPE="ext3" 
/dev/xvdc1: UUID="2ea5998b-8a44-458d-b1fa-630302dbf212" TYPE="ext4"


備註:

一、擴展磁盤
vgextend myvg /dev/vdc
 pvs
lvextend -l +100%FREE /dev/myvg/mylv
lvs
resize2fs  /dev/myvg/mylv 
二、添加新磁盤
  485  fdisk /dev/vdb 
  486  vgcreate myvg /dev/vdb1 
  487  reboot
  488  vgcreate myvg /dev/vdb1 
  489   lvcreate  -l +100%FREE  -n lv1 myvg
  490  lvs
  491  pvs
  492  mkfs.xfs /dev/myvg/lv1 
  493  echo /dev/myvg/lv1 /data/ xfs defaults 0 0 >>/etc/fstab 
  494  vim /etc/fstab 
  495  mount -a
############################添加新磁盤
一、劃分分區
[root@PROD-HZ-10880-3:~]16:53:50# fdisk /dev/vdb 
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xae71dee0.
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-419430399, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): 
Using default value 419430399
Partition 1 of type Linux and of size 200 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): ps^H
Disk /dev/vdb: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xae71dee0
   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   419430399   209714176   8e  Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
二、建立邏輯卷組
vgcreate myvg /dev/vdb1 
  Physical volume "/dev/vdb1" successfully created.
  Volume group "myvg" successfully created
三、建立邏輯卷
lvcreate  -l +100%FREE  -n lv1 myvg
  Logical volume "lv1" created
四、格式lv1
mkfs.xfs /dev/myvg/lv1 
meta-data=/dev/myvg/lv1          isize=512    agcount=4, agsize=13106944 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=52427776, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=25599, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
五、把lv1掛載到/data目錄下
echo /dev/myvg/lv1 /data/ xfs defaults 0 0 >>/etc/fstab
六、掛載全部的卷
mount -a


本文參考:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html

相關文章
相關標籤/搜索