一、 概念与由来

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. PyQt4(使用ui)

    1.使用qt designer设计界面,保存为test1.ui: 2.使用pyuic4 test1.ui -o ui.py生成ui代码. 3.程序载入. import sys import ui fr ...

  2. 6.Spring MVC SSM整合问题总结

    1.Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter] for ...

  3. [EXCEL] 不能清除剪贴板: We couldn't free up space on the clipboard. Another program might be using it right now

    Excel复制粘贴时出现以下错误,原因是有程序占用了剪切板. We couldn't free up space on the clipboard. Another program might be ...

  4. Jquery Ajax向服务端传递数组参数值

    在使用MVC时,向服务器端发送POST请求时有时需要传递数组作为参数值 下面使用例子说明,首先看一下Action [HttpPost] public ActionResult Test(List< ...

  5. VS C#程序打包覆盖安装不能更新的解决方法

    最近写个小程序,打包覆盖安装更新时老是不起作用,还是原来的程序. 在网上四处查找,productcode和ersion都已经更改,removepreviousversions也设置成true了,可就是 ...

  6. 转:JavaBean 、 Serverlet 总结

    Serverlet简介: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web ...

  7. windows下搭建vue开发环境

    Vue.js是一套构建用户界面的 “渐进式框架”.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.2016 ...

  8. PHP利用二叉堆实现TopK-算法的方法详解

    前言 在以往工作或者面试的时候常会碰到一个问题,如何实现海量TopN,就是在一个非常大的结果集里面快速找到最大的前10或前100个数,同时要保证 内存和速度的效率,我们可能第一个想法就是利用排序,然后 ...

  9. September 12th 2017 Week 37th Tuesday

    Failure is the fog through which we glimpse triumph. 失败是迷雾,穿过它,我们就可以瞥见光明. Sometimes the fog may be t ...

  10. Lua脚本语法说明(转):

    Lua脚本语法说明(增加lua5.1部份特性) 转自:http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.html Lua 的语法比较简单,学 ...