一、 概念与由来

LVM:逻辑卷管理(Logical Volume Manager)

普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某文件时,这个文件因为受上层文件系统的限制,不能跨越多个分区存放,所以也不能放到多个磁盘上。

而当某个分区空间耗尽时,解决的方法通常是使用符号链接,或者是调整分区大小的工具(工具有可能会导致我们的系统崩溃),但这都没有从根本上解决问题。

随着LVM的出现,问题迎刃而解,用户在无需停机的情况下可以很方便的调整分区的大小

二、 工作原理

LVM的工作原理是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。

在传统的磁盘管理机制中,上层应用是直接访问文件系统来对底层的物理硬盘进行读写。而在LVM中,它会将底层的硬盘进行封装,当我们通过软件去对底层的物理磁盘进行操作时,它不再是直接对分区进行操作,而是通过逻辑卷对底层的物理硬盘进行操作。

LVM最大的特点就是可以对磁盘进行动态管理,因为逻辑卷的大小是可以动态调整的,而且不会丢失数据。逻辑卷的技术大大提高了磁盘管理的逻辑性。

三、 名词解释

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等,是存储系统最低层的存储单元。

物理卷(Physical Volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(Logical Volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

PE(Physical Extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(Logical Extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

四、LVM创建逻辑概念

我们以LVM对磁盘进行动态管理后,使硬盘以逻辑卷的形式呈献给上层服务的。所以我们操作的目的就是创建LV,用LV去替代我们之前的分区,我们通过对逻辑卷进行格式化,然后挂载就可以使用了。步骤如下:

  1. 将创建好的LV进行文件系统格式化,然后使用mount进行挂载,这时我们就可以像平常使用分区一样使用逻辑卷了。
  2. 对LVM的工作原理进行总结

    a)         物理磁盘被格式化为PV,空间被划分成一个个的PE

    b)        将不同的PV加入到同一个VG中,不同PV的PE全部放到了VG的PE池中

    c)         LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的磁盘

    d)        LV在格式化文件系统后挂载就可以使用了

    e)         LV的扩充缩减实际上就是增加或减少PE数量,其过程不会丢失数据

    所以,如果我们要对LV进行扩充,首先加入一块磁盘,然后格式化成PV,将该PV加入到VG中,然后我们就可以从VG中拿出空闲的PE对LV进行扩充了

五、命令解析

    a)PV管理

      pvcreate    # 创建PV

      pvscan       # 扫描并列出所有PV

      pvdisplay    # 列出PV属性信息

      pvremove      #  移除PV

      pvmove      # 移动PV中的数据

   

    b)VG管理

      vgcreate    # 创建VG

        -s    # 指定PE的大小

        -l    # 卷组上允许创建的最大逻辑卷数

        -p    # 卷组中允许添加的最大物理卷数

      vgscan     # 扫描并列出所有VG

      vgdisplay    # 列出VG属性信息

      vgremove    # 移除VG

      vgreduce      # 从VG中移除PV

      vgextend     # 将PV添加到VG

      vgchange     # 设置VG是否启动(active)

    

    c)LV管理

      lvcreate      # 创建LV

        -L +size # 指定LV大小

        -n      # 指定LV名字

示例:lvcreate -L 5G -n lv vg0   然后再/dev/mapper中会创建vg0-lv1

      lvscan        # 扫描并列出所有LV

      lvdisplay      # 列出LV属性信息

      lvremove      # 移除lv

      lvreduce(lvresize)  # 缩小lv容量

      lvextend(lvresize)  # 增大lv容量

      lvresize      # 盖面lv容量

      

六、创建逻辑卷

  1.使用pvcreate命令将物理磁盘格式化成PV,使用pvcreate命令。

    a)         虚拟两块2G物理硬盘,可以通过fdisk –l命令查看

    b)        先将/dev/sdb,/dev/sdc格式为PV

    c)         使用pvs查看简单信息,pvdisplay查看详细信息

[root@centos7 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G .7G 97G % /
devtmpfs 901M 901M % /dev
tmpfs 911M 911M % /dev/shm
tmpfs 911M 9.5M 902M % /run
tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 1014M 135M 880M % /boot
tmpfs 183M 183M % /run/user/
[root@centos7 ~]# fdisk -l Disk /dev/sda: 107.4 GB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk label type: dos
Disk identifier: 0x000c1b7a Device Boot Start End Blocks Id System
/dev/sda1 * Linux
/dev/sda2 Linux swap / Solaris
/dev/sda3 Linux Disk /dev/sdb: MB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes Disk /dev/sdc: MB, bytes, sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes [root@centos7 ~]# yum install lvm2 -y          # 安装lvm2软件
[root@centos7 ~]# rpm -qa|grep lvm            # 过滤lvm包组
lvm2-2.02.-.el7_6..x86_64
lvm2-libs-2.02.-.el7_6..x86_64 [root@centos7 ~]# pvcreate /dev/sdb /dev/sdc       # 将新添加的两块磁盘格式化为PV
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created. [root@centos7 ~]# pvs                    # 查看PV简单信息
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- .00g .00g
/dev/sdc lvm2 --- .00g .00g [root@centos7 ~]# pvdisplay                 # 显示目前系统上的PV状态
"/dev/sdb" is a new physical volume of "2.00 GiB"    
  --- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size
Total PE
Free PE
Allocated PE
PV UUID dhEvh2-mOsu-Tyas-6wb8-6gfD-EpT7-0lb1ff "/dev/sdc" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size
Total PE
Free PE
Allocated PE
PV UUID bLrH3d-Ry0I-durj-3apN-q4kF-m0uy-DG8f5q

 2.创建卷组VG,并将PV加入到VG,通过vgcreate命令

[root@centos7 ~]# vgcreate pool /dev/sdb /dev/sdc    # 创建VG池
Volume group "pool" successfully created
[root@centos7 ~]# vgs                     # 查看简单信息
VG #PV #LV #SN Attr VSize VFree
pool wz--n- .99g .99g            #此处显示的3.99G就是两块磁盘给格式化成PE后组成的VG容量
[root@centos7 ~]# vgdisplay                  # 查看详细信息
--- Volume group ---      
VG Name pool
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size /
Free PE / Size / 3.99 GiB
VG UUID e55Yks-0Phr-VarP-xAF8-8W4B-vBFg-VWqPm3

  3.基于VG创建LV,通过lvcreate命令

[root@centos7 ~]# lvcreate -n xiaoliziLV -L 2G pool            # 创建LV逻辑卷名字为xiaoliziLV 大小为2G
Logical volume "xiaoliziLV" created.
[root@centos7 ~]# lvs                              # 简单显示LV信息
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
xiaoliziLV pool -wi-a----- .00g
[root@centos7 ~]# lvdisplay                           # 详细显示LV信息
--- Logical volume ---  
LV Path /dev/pool/xiaoliziLV
LV Name xiaoliziLV
VG Name pool
LV UUID xhCdbm-JZvA-MIMW-4p0K-0V4O-Gl60-9X4mNr
LV Write Access read/write
LV Creation host, time centos7, -- :: +
LV Status available
# open
LV Size 2.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device :0

  [root@centos7 ~]# ls /dev/mapper/
    control pool-xiaoliziLV

  [root@centos7 ~]# mkfs.xfs /dev/mapper/pool-xiaoliziLV          # 格式化文件系统
    meta-data=/dev/mapper/pool-xiaoliziLV isize=512 agcount=4, agsize=131072 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=1 finobt=0, sparse=0
    data = bsize=4096 blocks=524288, imaxpct=25
    = sunit=0 swidth=0 blks
    naming =version 2 bsize=4096 ascii-ci=0 ftype=1
    log =internal log bsize=4096 blocks=2560, version=2
    = sectsz=512 sunit=0 blks, lazy-count=1
    realtime =none extsz=4096 blocks=0, rtextents=0

 [root@centos7 ~]# mkdir /lvtest                        # 创建挂载点
 [root@centos7 ~]# mount /dev/mapper/pool-xiaoliziLV /lvtest/
 [root@centos7 ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 98G 1.6G 97G 2% /
    devtmpfs 901M 0 901M 0% /dev
    tmpfs 911M 0 911M 0% /dev/shm
    tmpfs 911M 9.6M 902M 2% /run
    tmpfs 911M 0 911M 0% /sys/fs/cgroup
    /dev/sda1 1014M 135M 880M 14% /boot
    tmpfs 183M 0 183M 0% /run/user/0
    /dev/mapper/pool-xiaoliziLV 2.0G 33M 2.0G 2% /lvtest

七、扩容一个逻辑卷

在传统的硬盘管理模式中,如果我们一个分区大小不够用了(硬盘还有剩余空间的时候),需要扩容,那只能将此分区所有的信息转到别处,卸载后重新分区,最后再将新的分区挂载上去。

如果在生产环境中,这样的操作是不可想象的,费时费力。而使用LVM就方便很多了,见图:

从上图可以看出,所谓扩容就是往LV中增加PE的数量,增加多少取决你VG中空闲的PE数量。

【注意】逻辑卷的扩容可以在线进行,不需要卸载逻辑卷。这样的管理方式对于7*24小时小对外提供服务的公司就非常有必要了。

  第一种情况:VG中有足够的剩余空间(能看到空闲1.99G),这时为 LV增加1G的容量。步骤如下:

[root@centos7 ~]# vgdisplay
--- Volume group ---
VG Name pool
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 2.00 GiB
Free PE / Size 510 / 1.99 GiB
VG UUID e55Yks-0Phr-VarP-xAF8-8W4B-vBFg-VWqPm3 [root@centos7 ~]# lvextend -L +1G /dev/pool/xiaoliziLV               # 扩容逻辑卷1G,使用lvextend命令
  Size of logical volume pool/xiaoliziLV changed from 2.00 GiB ( extents) to 3.00 GiB (
extents).
Logical volume pool/xiaoliziLV successfully resized.
[root@centos7 ~]# lvdisplay                               # 查看逻辑卷信息(发现LV已经是3G了)
--- Logical volume ---
LV Path /dev/pool/xiaoliziLV
LV Name xiaoliziLV
VG Name pool
LV UUID xhCdbm-JZvA-MIMW-4p0K-0V4O-Gl60-9X4mNr
LV Write Access read/write
LV Creation host, time centos7, -- :: +
LV Status available
# open
LV Size 3.00 GiB
Current LE
Segments
Allocation inherit
Read ahead sectors auto
- currently set to
Block device :

[root@centos7 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 98G .6G 97G % /
devtmpfs devtmpfs 901M 901M % /dev
tmpfs tmpfs 911M 911M % /dev/shm
tmpfs tmpfs 911M 9.6M 902M % /run
tmpfs tmpfs 911M 911M % /sys/fs/cgroup
/dev/sda1 xfs 1014M 135M 880M % /boot
tmpfs tmpfs 183M 183M % /run/user/
/dev/mapper/pool-xiaoliziLV xfs .0G 33M .0G % /lvtest # 我们上面可以看到仅仅是LV的大小有改变,而真实文件系统的大小未改变。这是因为我们在创建完LV之后就立马格式化为文件系统了,此后我们对逻辑卷的修改,是不会直接影响到文件系统的。这时候就要用到一个更新的命令resize2fs/xfs_growfs

[root@centos7 ~]# resize2fs /dev/mapper/pool-xiaoliziLV       
  resize2fs 1.42.9 (28-Dec-2013)
  resize2fs: Bad magic number in super-block while trying to open /dev/mapper/pool-xiaoliziLV      # 此处报错,是因为之前的文件系统是xfs的,所以此处扩充命令是xfs_growfs
  Couldn't find valid filesystem superblock.

[root@centos7 ~]# xfs_growfs /dev/mapper/pool-xiaoliziLV                             # 更新文件系统
meta-data=/dev/mapper/pool-xiaoliziLV isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 524288 to 786432

[root@centos7 ~]# df -h                  # 扩容完成
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 98G 1.6G 97G 2% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.6M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 135M 880M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/pool-xiaoliziLV 3.0G 33M 3.0G 2% /lvtest

 

  第二种情况:VG中没有足够的剩余空间(能看到空闲1G),这时为 LV增加16G的容量。步骤如下:

[root@centos7 ~]# vgdisplay
--- Volume group ---
VG Name pool
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 3.00 GiB
Free PE / Size 254 / 1016.00 MiB
VG UUID e55Yks-0Phr-VarP-xAF8-8W4B-vBFg-VWqPm3 [root@centos7 ~]# lvextend -L 16G /dev/pool/xiaoliziLV      # 没有足够的的容量 [root@centos7 ~]# ls /dev/sdd                    # 添加了一块20G的新硬盘
/dev/sdd  
[root@centos7 ~]# pvcreate /dev/sdd                # 创建pv
Physical volume "/dev/sdd" successfully created.
[root@centos7 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb pool lvm2 a-- <.00g
/dev/sdc pool lvm2 a-- <.00g 1016.00m
/dev/sdd lvm2 --- .00g .00g
[root@centos7 ~]# vgextend pool /dev/sdd             # 创建VG池
Volume group "pool" successfully extended
[root@centos7 ~]# vgdisplay                     # free pe size 大于20G了
--- Volume group ---
VG Name pool
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size <23.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 3.00 GiB
Free PE / Size / <20.99 GiB
VG UUID e55Yks-0Phr-VarP-xAF8-8W4B-vBFg-VWqPm3 [root@centos7 ~]# lvextend -L +16G /dev/pool/xiaoliziLV    # 扩容16G的容量
Size of logical volume pool/xiaoliziLV changed from 3.00 GiB ( extents) to 19.00
B ( extents).
Logical volume pool/xiaoliziLV successfully resized.

[root@centos7 ~]# xfs_growfs /dev/pool/xiaoliziLV       # 格式化文件系统报错,因为之前的挂载没写入开机自检里,所以会报错
xfs_growfs: /dev/pool/xiaoliziLV is not a mounted XFS filesystem [root@centos7 ~]# mount /dev/mapper/pool-xiaoliziLV /lvtest    # 重新挂载下
[root@centos7 ~]# xfs_growfs /dev/pool/xiaoliziLV           # 扩容成功
meta-data=/dev/mapper/pool-xiaoliziLV isize= agcount=, agsize= blks
= sectsz= attr=, projid32bit=
= crc= finobt= spinodes=
data = bsize= blocks=, imaxpct=
= sunit= swidth= blks
naming =version bsize= ascii-ci= ftype=
log =internal bsize= blocks=, version=
= sectsz= sunit= blks, lazy-count=
realtime =none extsz= blocks=, rtextents=
data blocks changed from to 4980736

 [root@centos7 ~]# df -h
   Filesystem Size Used Avail Use% Mounted on
   /dev/sda3 98G 1.6G 97G 2% /
   devtmpfs 901M 0 901M 0% /dev
   tmpfs 911M 0 911M 0% /dev/shm
   tmpfs 911M 9.5M 902M 2% /run
   tmpfs 911M 0 911M 0% /sys/fs/cgroup
   /dev/sda1 1014M 135M 880M 14% /boot
   tmpfs 183M 0 183M 0% /run/user/0
   /dev/mapper/pool-xiaoliziLV 19G 34M 19G 1% /lvtest


七、缩小一个逻辑卷

  缩小逻辑卷其实就是从LV中拿出指定指定数量的PE放回VG。

【注意】逻辑卷的缩小操作必须要先卸载逻辑卷才行,否则可能会造成逻辑卷中的文件发生损坏。这时我们将LV缩小至10G,步骤如下:

.通过umount卸载已挂载的逻辑卷
[root@onion ~]# umount /mnt/
[root@onion ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 48G .5G 44G % /
tmpfs tmpfs 491M 491M % /dev/shm
/dev/sda1 ext4 190M 35M 146M % /boot .缩小LV的大小:我们前面讲到对LV扩容后,需要执行resize2fs/xfs_growfs更新我们的文件系统,但是在对LV进行缩小操作时(xfs文件系统不支持缩容),必须先执行缩小的操作

[root@onion ~]# resize2fs /dev/pool/mylv 10G # 检查文件系统 或者 e2fsck -f /dev/pool/mylv
resize2fs 1.41. (-May-)
Please run 'e2fsck -f /dev/pool/mylv' first.
[root@onion ~]# e2fsck -f /dev/pool/mylv
e2fsck 1.41. (-May-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/pool/mylv: / files (0.0% non-contiguous), / blocks .检查完毕后,再使用resize2fs去缩小文件系统
[root@onion ~]# resize2fs /dev/pool/mylv 10G
resize2fs 1.41. (-May-)
Resizing the filesystem on /dev/pool/mylv to (4k) blocks.
The filesystem on /dev/pool/mylv is now blocks long. 4.跟扩容的顺序刚好相反,我们先缩小了文件系统,再缩小LV,使用lvreduce命令 [root@onion ~]# lvreduce -L -9G /dev/pool/mylv
WARNING: Reducing active logical volume to 10.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce pool/mylv? [y/n]: y

注:这里会提示一个警告可能会损坏我们的文件,这种情况会出现在 当我们需要缩小的文件大小与实际操作时缩小(resize2fs)的文件大小不一致时,比如这里我如果多缩小了1个G大小的逻辑卷,这个时候就会出现文件损坏的情况
Size of logical volume pool/mylv changed from 19.00 GiB ( extents) to 10.00 GiB ( extents).
Logical volume mylv successfully resized. [root@onion ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv pool -wi-a----- .00g 【注意】缩小逻辑卷是一个非常危险的操作,稍不注意就可能损坏我们的逻辑卷,造成文件的丢失或损坏,所以我们一般不要对逻辑卷进行缩减的操作 .缩小之后,再将逻辑卷挂载在/mnt下,看里面的文件是否存在。

八、缩小卷组

  当我们VG中空间足够用,有很多剩余的时候,我们想把里面没用到的硬盘拆下来,以作它用。这时候就需要我们去执行缩小卷组的操作了。

  

1.首先使用pvdisplay查看各PV的信息,可以看到/dev/sdd空间是未被使用的
[root@onion ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name pool
PV Size 8.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE
Free PE
Allocated PE
PV UUID SfW2Wo-NeZM-KXSX-UqQj-VWHV-NAL6-UQb3lw --- Physical volume ---
PV Name /dev/sdc
VG Name pool
PV Size 8.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE
Free PE
Allocated PE
PV UUID F8Gq56-M9ff-i9e9-TEvF-1BOL-qsiJ-PTuApu --- Physical volume ---
PV Name /dev/sdd
VG Name pool
PV Size 8.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE
Free PE
Allocated PE
PV UUID IT2wzW-bVBQ-NU7C-9EbU-3uie-W1LF-Vx3clj 2.确定磁盘后,还是先卸载逻辑卷

[root@onion ~]# umount /mnt/
[root@onion ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 48G .5G 44G % /
tmpfs tmpfs 491M 491M % /dev/shm
/dev/sda1 ext4 190M 35M 146M % /boot 3.将这个PV从指定卷中移除并查看。

[root@onion ~]# vgreduce pool /dev/sdd
Removed "/dev/sdd" from volume group "pool"
[root@onion ~]# vgdisplay
--- Volume group ---
VG Name pool
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 15.99 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 10.00 GiB
Free PE / Size / 5.99 GiB
VG UUID YUlucV-5pVP-W73A-DAsR-EIlw-jnVf-l5Y9M1 .查看PV情况(发现还是有/dev/sdd)

[root@onion ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb pool lvm2 a--u .00g
/dev/sdc pool lvm2 a--u .00g .99g
/dev/sdd lvm2 ---- .00g .00g .移除/dev/sdd这个PV

[root@onion ~]# pvremove /dev/sdd
Labels on physical volume "/dev/sdd" successfully wiped
[root@onion ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb pool lvm2 a--u .00g
/dev/sdc pool lvm2 a--u .00g .99g
.重新挂载,查看文件是否改变

[root@onion ~]# mount /dev/pool/mylv /mnt
[root@onion ~]# ll /mnt/
total
-rw-r--r--. root root Jul : koala
drwx------. root root Jul : lost+found

九、删除逻辑卷

  对于不想用的逻辑卷,可以删除掉。

【注意】创建LV有顺序,删除也是要严格按照顺序的。

卸载——>删除逻辑卷——>删除卷组——>删除物理卷

  1. 卸载逻辑卷,使用umount命令
  2. 删除逻辑卷,使用lvremove命令
  3. 删除卷组,使用 vgremove命令
  4. 删除物理卷,使用pvremove命令
[root@onion ~]# umount /dev/pool/mylv

[root@onion ~]# lvremove /dev/pool/mylv

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

  Logical volume "mylv" successfully removed

[root@onion ~]# vgremove pool

  Volume group "pool" successfully removed

[root@onion ~]# pvremove /dev/sdb

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

# 查看卸载状态

[root@onion ~]# lvs

[root@onion ~]# vgs

[root@onion ~]# pvs

  PV         VG   Fmt  Attr PSize PFree

  /dev/sdc        lvm2 ---- .00g .00g

逻辑卷管理-LVM(Logical Volume Manager)的更多相关文章

  1. 逻辑卷管理LVM (Logical Volume Manager)

    什么是LVM? LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 ...

  2. linux逻辑卷管理 (LVM)(转)

    1.什么是 LVM LVM 是逻辑盘卷管理(Logical Volume Manager)的简称,它是 Linux 环境下对磁盘分区进行管理的一种机制,LVM 是建立在硬盘和分区之上的一个逻辑层,来为 ...

  3. 逻辑卷管理lvm

    逻辑卷管理LVM 一 创建逻辑卷 1准备分区或硬盘 这里使用/dev/sdb./dev/sdc两块硬盘和/dev/sda9./dev/sda10两个分区,大小都为1G,磁盘有限,我也不想这么抠的. 添 ...

  4. 逻辑卷管理LVM(logical volume manager)

    LVM的全名是logical volume manager,中文翻译逻辑卷管理器.之所以称为卷是因为可以将文件系统像卷一样伸长和缩短,LVM的做法是将几个物理的分区(或磁盘)通过软件组合成为一块独立的 ...

  5. Linux 逻辑卷管理LVM

    LVM概述 Logical Volume Manager,逻辑卷管理 屏蔽了底层磁盘布局,便于动态调整磁盘容量 需要注意:/boot分区用于存放引导文件,不能应用LVM机制 LVM结构 目标:将sdb ...

  6. 存储5——逻辑卷管理LVM

    1. LVM概念 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻辑上 ...

  7. lvm - Logical Volume Manager - 逻辑卷管理

    下午突然感觉 lvm 相关的知识忘记了,恰好机房里的fedora服务器上 挂了4个500GB的HDD 硬盘没有使用,就拿来操作了一番: 下面有几篇关于lvm不错的文章,进行了链接,网上也有很多不错的博 ...

  8. 逻辑卷管理LVM 扩容LV容量实例(一)

    实验环境: 一台Linux 服务器添加两块硬盘,一块硬盘容量30G,另一块硬盘容量50G,采用VMware Workstation虚拟机进行模拟实验. 30G硬盘先分成一个分区,分区大小为25G,再创 ...

  9. 用kickstart创建逻辑卷管理LVM分区

    创建两个物理分区分别给Boot和Swap分区,剩余的空间作LVM. Partition    Size    Name------------------------------/boot       ...

随机推荐

  1. AI在网管中的运用

  2. 如何利用API导出带有页眉页脚的excel

     在报表中设置的页眉页脚在页面中是看不到的,如下图: 页面中的效果: 在打印的时候,可以看到页眉页脚的效果: 那么,如果将页眉页脚导入到导出的excel中呢.我们可以通过API来进行设置: < ...

  3. LGWR和DBWn的触发条件

    Rolling Forward(前滚) Oracle启动实例并加载数据库,然后通过Online Redologs中的重做日志,重现实例崩溃前对数据库的修改操作.在恢复过程中对于已经提交的事务,但尚未写 ...

  4. jsoncpp cmake

    (1)下载jsoncpp源码源码地址:https://github.com/open-source-parsers/jsoncpp/tree/0.y.z(2)解压源码 unzip jsoncpp-0. ...

  5. C语言中的逗号表达式

    转载:http://www.cnblogs.com/hnrainll/archive/2011/08/03/2126660.html C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来 ...

  6. leetCode题解 Reverse Words in a String III

    1.题目描述 Given a string, you need to reverse the order of characters in each word within a sentence wh ...

  7. 从零开始学习Docker

    由于项目中可能用到docker容器,在此记录一下我的学习过程 1,docker的安装,wget -qO- https://get.docker.com/ | sh,查看docker是否安装成功: 此处 ...

  8. [翻译] DCPathButton

    DCPathButton https://github.com/Tangdixi/DCPathButton DCPathButton 2.0 is a menu button for iOS. Des ...

  9. iOS系统声音列表

    iOS系统声音列表 效果 说明 1. 点击cell就能发出声音 2. 只需要给出声音编号,就可以,非常简单易用 源码 https://github.com/YouXianMing/iOS-Utilit ...

  10. November 26th 2016 Week 48th Saturday

    All growth is a leap in the dark. 所有的成长都是黑暗中的一跃. But it is a dark and long night, I can't see any st ...