介绍
Linux中的交换空间在系统物理内存被用尽的时候使用。如果系统需要更多的内存资源,而物理内存以及用尽,内存中不活跃的页就会被交换到交换空间中。
交换空间位于硬盘中,速度不如物理内存。
ps:
在生产环境中交换空间的大小一般取决于计算机物理内存的大小:如果物理内存小于4GB,通常建议为物理内存的2倍;如果物理内存大于4GB小于16GB,通常设置为物理内存的大小;如果物理内存大于16GB,建立为物理内存的一半
Linux的虚拟内存系统,主要用于存储应用程序及其使用的数据信息,虚拟内存的大小取决于应用程序和操作系统。
如果交换空间太小,则可能会导致应用程序无法运行,导致页面频繁地在内存和磁盘之间交换,从而导致系统性能下降。
如果交换空间太大,则可能会浪费磁盘空间。
系统交换分区的大小需要合理设置。
如果虚拟内存大于物理内存,操作系统可以在空闲的时候将所有进程换到磁盘上,并且能够提高系统的性能。如果序往将应用程序的活动保留在内存中,并且不需要大量的交换,可以设置较小的虚拟内存。桌面环境配置比较大的虚拟内存有利于运行大量的应用程序。
Linux系统总会尝试使用全部的物理内存,而尽量不使用虚拟内存。在重负载的生产环境中,物理内存应该足够大,否则会导致“多米诺骨牌效应”。
物理内存不够会导致更多的进程被换到交换分区,进而导致磁盘I/O加重;
磁盘I/O加重会导致更多的进程被阻塞放置到内存中。在重负载的生产环境中,必须控制虚拟内存的使用量。
交换分区的操作
- 交换分区操作:- 启动:swapon- swapon [potion] [divice]- -a:激活所有交换分区- -p:指定优先级- 关闭:swapoff- swapoff [option] ……[divice]- 是临时关闭的
mkswap
创建交换分区的系统文件
在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区。
| 参数 | 说明 |
|---|---|
| -c | 在建立交换分区之前,先检查是否有损坏的区块 |
| -f | SPARC电脑上建立交换区时,要加上此参数 |
| -v0 | 建立旧式交换区,此为预设值 |
| -v1 | 建立新式交换区 |
[root@node1 ~]# mkswap /dev/sdb
mkswap: /dev/sdb: warning: wiping old ext4 signature.
Setting up swapspace version 1, size = 20971516 KiB
no label, UUID=c49ce8b8-bdec-48eb-acb3-863513371bb4
#查看
[root@node1 ~]# swapoff /dev/sdb
[root@node1 ~]# free
total used free shared buff/cache available
Mem: 7990280 182380 7607852 11968 200048 7543864
Swap: 2097148 0 2097148
swapon
使用swap分区
| 参数 | 说明 |
|---|---|
| -a | 激活所有交换分区 |
| -p | 指定优先级 |
[root@node1 ~]# swapon /dev/sdb #分区设备文件名
[root@node1 ~]# free
total used free shared buff/cache available
Mem: 7990280 197196 7593048 11968 200036 7529052
Swap: 23068664 0 23068664
#看到了swap分区变大了
swapoff
取消新加入的 swap 分区,是临时关闭的
[root@node1 ~]# swapoff /dev/sdb
[root@node1 ~]# free
total used free shared buff/cache available
Mem: 7990280 182380 7607852 11968 200048 7543864
Swap: 2097148 0 2097148
如果想让 swap 分区开机之后自动挂载,就需要修改 /etc/fstab 文件,命令如下:
[root@localhost ~]#vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults 1 1
UUID=0b23d315-33a7-48a4-bd37-9248e5c443451 boot ext4 defaults 1 2
UUID=4021be19-2751-4dd2-98cc-383368c39edb 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/sdb1 swap swap
defaults 0 0
#加入新swap分区的相关内容,这里直接使用分区的设备文件名,也可以使用UUID。
磁盘冗余阵列RAID
介绍
RAID(Redundant Array of Independent Disks)的基本目的是把多个小型廉价的硬盘合并成一组大容量的硬盘,用于解决数据冗余性并降低硬件成本,使用时就像在使用单一的硬盘。
优点:由多块硬盘组合而成,可以获得更好的读写性能(同时读写)及数据的冗余(一个数据多个备份)功能。
要使用磁盘RAID主要有两种方式,一种就是RAID适配卡,通过RAID适配卡插入PCI插槽,再接上硬盘实现RAID功能。第二种方式就是直接在主板上集成RAID控制芯片,让主板能直接实现磁盘RAID
分类
磁盘阵列其实也分为软阵列 (Software Raid)和硬阵列 (Hardware Raid) 两种。
软阵列
通过软件程序并由计算机CPU提供运行能力所构成,由于软件程式不是一个完整系统,故只能提供最基本的RAID容错功能,其他如热备用硬盘的设置,远程管理等功能均没有。
软件阵列在系统中实现各种RAID级别,不需要RAID控制器。
硬阵列
是由独立操作系统的硬件提供整个磁盘阵列的控制和计算功能,不依靠系统的CPU资源,由于硬阵列是一个完整的系统,所有需要的功能均可以做进去,所以硬阵列所提供的功能和性能均比软阵列好。如果你想把系统也做到磁盘阵列中,硬阵列是唯一的选择,故我们在市场上RAID5级的磁盘阵列均为硬阵列。
在生产环境中,硬件RAID控制器由于自带计算芯片无须额外消耗系统计算资源而被广泛使用。
软件RAID 级别
RAID0
条带化(Stripe)存储, 即Data Stripping数据分条技术存
RAID 0可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量
RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上(随机分片写入每个磁盘),在所有的级别中,RAID 0的速度是最快的。理论上说,有N个磁盘组成的RAID0是单个磁盘读写速度的N倍,存储能力等同于每个硬盘的存储能力之和。
缺点:AID0是没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
最少磁盘数:2
可用空间:N*MIN
RAID1
RAID1的每一个磁盘都具有一个对应的镜像盘,任何时候数据都同步镜像,系统可以从一组镜像盘中的任何一个磁盘读取数据,可以提供高度的数据可用性和更好的读性能(同时读),但是写性能略有下降
磁盘所能使用的空间只有磁盘容量总和的一半,系统成本高
只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一般数量的磁盘出现问题时,系统都可以正常运行
出现硬盘故障的RAID系统不再可靠,应当及时更换损坏的硬盘,否则剩余的镜像盘也会出现问题,那么整个系统就会崩溃
更换系统盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降
镜像存储,把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力,但磁盘利用率为50%。当原始数据繁忙时,可直接从镜像中读取数据。
RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
可用空间:1*MIN
RAID3
奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为字节
RAID3是以一个硬盘来存放数据的奇偶校验位,数据则分段存储于其余硬盘中。
它像RAID0一样以并行的方式来存放数据,但数据没有RAID0快
如果数据盘(物理)损坏,只要将坏硬盘换掉,RAID控制系统就会根据校验位在新盘中重建坏盘上的数据,但是,如果是校验盘损坏的话,则全部数据将无法使用。
利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为n-1
RAID3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈
RAID2
海明码校验条带化存储。将数据条化地分布于不同的硬盘上,条块单位为位或字节,使用海明码来提供错误检查及恢复。这种编码技术需要多个磁盘来存放检查及恢复信息,使RAID3技术实施更复杂,在商业环境中很少使用
RAID5 (最优的使用方案)
奇偶检验(XOR)条带化存储,校验数据分布式存储,数据条存储单位为块。
RAID5不单独指定奇偶盘,而是在所有磁盘上交叉地存储数据及奇偶校验信息。
在RAID5上,读/写指针可同时对阵列设备进行操作,提高了更高的数据流量。
RAID5更适合于小数据块和随机读写的数据。
RAID3和RAID5的区别在于RAID3每进行一次数据传输就需要涉及到所有的阵列盘,而对于RAID5而言,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID5中有“写损失”,即每一次写操作将产生4个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息
RAID5把校验块分散到所有的数据盘中,用到了一种特殊的算法,可以计算出任何一个带区校验块的存放位置。这样就可以确保任何对校验块进行的读写操作都会在所有的RAID磁盘中进行均衡,从而消除了产生瓶颈的可能。
RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。提高了系统可靠性,但对数据传输的并行性解决不好,而且控制器的数据也相当困难。
为了具有RAID-5级的冗余度,需要最少由三个磁盘组成的磁盘阵列(不包括一个热备用)。RAID-5可以通过磁盘阵列控制器硬件实现,也可以通过某些网络操作系统软件实现了。硬盘的利用率为n-1。
当进行恢复时,比如我们需要需要恢复下图中的A0,这里就必须需要B0、C0、D0加0 parity才能计算并得出A0,进行数据恢复。所以当有两块盘坏掉的时候,整个RAID的数据失效。
组件RAID至少需要2块硬盘。
RAID4
奇偶校验(XOR)条带存储,共享校验盘,数据条带存储单位为块。RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
可用空间:N*MIN
RAID10
RAID 10 是先做条带再做备份。这种情况中,我们假设当DISK0损坏时,在剩下的3块盘中,只有当DISK1一个盘发生故障时,才会导致整个RAID失效,我们可简单计算故障率为1/3
可用空间:N*MIN/2
冗余特性:1块盘
最少磁盘:4
RAID01
RAID 01 是先做备份在做条带。这种情况下,我们仍然假设DISK0损坏,这时左边的条带将无法读取。在剩下的3块盘中,只要DISK2,DISK3两个盘中任何一个损坏,都会导致整个RAID失效,我们可简单计算故障率为2/3。因此,RAID10比RAID01在安全性方面要强
从数据存储的逻辑位置来看,在正常的情况下RAID01和RAID10是完全一样的,而且每一个读写操作所产生的IO数量也是一样的,所以在读写性能上两者没什么区别。而当有磁盘出现故障时,比如前面假设的DISK0损坏时,我们也可以发现,这两种情况下,在读的性能上面也将不同,RAID10的读性能将优于RAID01。
把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。
| RAID类型 | 个数 | 利用率 | 优缺点 |
|---|---|---|---|
| RAID 0 条带集 | 2+ | 100% | 读写速率最快、不容错 |
| RAID 1 镜像集 | 2 | 50% | 读写速率一般,容错 |
| RAID 5 带奇偶校验条带集 | 3+ | (n-1)/n | 读写速率快,容错,允许坏一块 |
| RAID 6 带奇偶校验条带集双校验 | 4+ | (n-2)/2 | 读写速率快,容错,允许坏两块 |
| RAID 01 | |||
| RAID 10 RAID1的安全+RAID0的高速 | 4 | 50% | 读写速率快,容错 |
| RAID 50 RAID5的安全+RAID0的高速 | 6 | (n-2)/n | 读写速率快,容错 |
| RAID 60 RAID6的安全+RAID0的高速 | 8 | (n-4)/n | 读写速率快,容错 |
mdadm 命令行实现
Linux内核中有一个md(multiple devices)模块在底层管理RAID设备,它会在应用层给我们提供一个应用程序的工具mdadm ,mdadm是linux下用于创建和管理软件RAID的命令
| 参数 | 说明 |
|---|---|
| -a | 检测设备名称 |
| -n | 指定设备数量 |
| -l | 指定RAID级别 |
| -C | 创建 |
| -v | 显示创建过程 |
| -f | 模拟设备损坏 |
| -r | 移除设备 |
| -Q | 查看摘要信息 |
| -D | 查看详细信息 |
| -S | 停止RAID磁盘阵列 |
搭建RAID 10阵列
#新添加4块硬盘——在centos关机的情况下添加4块新的硬盘
[root@node2 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
#下载mdadm
[root@node2 ~]# yum install mdadm -y
#创建RAID阵列
[root@node2 ~]# mdadm -C -v /dev/md10 -l 10 -n4 /dev/sd{b,c,d,e}
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
#查看RAIDmd10的详细信息
[root@node2 ~]# mdadm -D /dev/md10
/dev/md10:
Version : 1.2
Creation Time : Wed Apr 29 07:22:43 2020
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Apr 29 07:23:15 2020
State : clean, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Resync Status : 25% complete
Name : node2:10 (local to host node2)
UUID : 2dcac6ea:890b42ed:ff8755c2:359ebe99
Events : 4
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@node2 ~]# mdadm -Q /dev/md10
/dev/md10: 39.97GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
#格式化磁盘阵列
[root@node2 ~]# mkfs.xfs /dev/md10
meta-data=/dev/md10 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#挂载使用
[root@node2 ~]# mkdir raid10
[root@node2 ~]# mount /dev/md10 raid10
#永久挂载
echo “mount /dev/md10 /ken” >> /etc/rc.local
或者
echo “/dev/md10 /ken xfs defaults 0 0 ” >> /etc/fstab
管理RAID10阵列
模拟磁盘损坏后的处理方式
mdadm /dev/md10 -f /dev/sdd ——选项f是用于模拟磁盘损坏。
mdadm -D /dev/md10
#看详细信息,这时候已经显示磁盘损坏了
# 重启
#添加磁盘
mdadm /dev/md10 -a /dev/sdf
mdadm -D /dev/md10
#添加成功,然后照常使用
创建RAID5+热备盘
第一步:添加四块磁盘并查看。
# ls /dev/sd*
第二步:创建磁盘阵列RAID5
# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
第三步:查看阵列信息
# mdadm -D /dev/md5
第四步:格式化
# mkfs.xfs /dev/md5
第五步:挂载
# mkdir /ken
# mount /dev/md5 /ken
LVM工具
部分摘录于相关文章:
https://www.cnblogs.com/moox/p/11163229.html https://blog.51cto.com/13691477/2299707 https://blog.51cto.com/wuyelan/1540859 https://www.thegeekdiary.com/lvm-error-cant-open-devsdx-exclusively-mounted-filesystem/ http://www.liaojl.com/blog/device-devsdb-excluded-by-a-filter/
介绍
LVM Logical Volume Manager(逻辑卷管理)是Linux操作系统对硬盘分区管理的一种形式,最早在内核2.4版上实现。
LVM是 Linux核心所提供的逻辑卷管理功能,在硬盘分区之上,又重新创建了一个逻辑层方便系统管理硬盘分区系统,可以提高磁盘分区管理的灵活性。
RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出来。
逻辑分区与逻辑卷的区别
逻辑分区容量大小不能改变
逻辑卷的容量大小可以改变(基于物理卷和卷组之上的逻辑卷)
逻辑卷管理器(LVM)可以更加轻松的管理磁盘空间(整合的磁盘池)
4个概念
PE
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB
PV
物理卷就是指磁盘,磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝。默认为1,保存在设备的开始处。为2时,在设备结束处保存第二份备份。
VG
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
LV
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)
原理解析

LVM的实质将多个物理卷(Physical Volume,PV,实质是分区)组合成一块更大的磁盘,称为卷组(Volume Group VG)。然后再卷组上划分新得逻辑卷(Logical Volume ,LV),最后在逻辑卷上建立文件系统的挂载。
LVM重新建立了新的寻址方式,首先在物理卷中创建物理块(Physiccal Extent,PE),物理块是LVM中最小的可寻址单元。创建卷组的时候,在卷组上创建与物理块一一对应的逻辑块(Logical Extent,LE)。创建逻辑卷的时候只需要将逻辑块划分给对应的逻辑卷。
1.将我们的物理硬盘格式化成PV
2.创建一个VG卷组在这里可以将其抽象成一个空间池,VG的作用就是用来装PE的,可以把一个或者多个PV加到VG当中
3.基于VG创建LV,创建LV就是从VG中拿出指定数量的PE,大小是PE的整数倍,组成LV的PE可以来自不同的PV
4.将创建好的LV进行文件系统的格式化,然后挂载使用
5.LV的扩充缩减实际上就是增加或减少组成该LV的PE的数量,其过程不会丢失原始数据
内核要求
LVM1版本需要2.4及以后的内核支持;LVM2需要2.6及以后的内核版本支持。
[root@node1 LG]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@node1 LG]# uname -r
3.10.0-1062.1.2.el7.x86_64
相关命令
pv 物理卷管理工具
- pvs:显示pv的摘要信息
- pvdiplay:显示pv的详细信息
-
vg 卷组管理工具
vgs:查看卷组的摘要信息
- vgsdisplay 查看所有卷组的详细信息
- vgcreate
创建卷组 - vgextend:拓展
- vgreduce:缩减,需要先进行vpmove操作
-
lv管理工具
lvs 显示逻辑卷的信息
- lvsdisplay 显示逻辑卷的详细信息
lvcreate -n LV1 -L 1G VG1 创建逻辑卷
-n:创建的逻辑卷名<br /> -L:表示分配逻辑卷的大小 <br /> VG1:表示在卷组VG1上创建逻辑卷LV1<br /> -s:创建快照卷lvremove /dev/VG_NAME/LV_NAME 删除lv
- 拓展逻辑卷
- lvextend -L size | +size lvname-path - resizefs /dev/VG_NAME/LV_NAME - vg创建后:/dev/vg_name/ - lv创建后:/dev/vg_name/lv_name - 缩减逻辑卷
| 命令 | 含义 | | —- | —- |- umount /dev/VG_NAME/LV_NAME - e2fsck | fsck -f /dev/VG_NAME/LV_NAME - resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] - lvreduce ‐L #[mMgGtT] /dev/VG_NAME/LV_NAME - mount
| mke2fs -t ext4 /devVG1/LV1 | 格式化物理卷 |
|---|---|
| mount | 挂载,可以在/etc/fstab中永久挂载 |
| vgextend VG1 /dev/sdd | 扩容卷组容量,把物理卷加入卷组 |
| lvextend -L +2G /dev/VG1/LV1 | 扩容逻辑卷 LV1,增加2G容量 |
| resize2fs /dev/VG1/LV1 | 确认增加容量 |
| e2fsck -f /dev/VG1/LV1 | 强制检查LV1逻辑卷,需先卸载 |
| lvreduce -L 1G /dev/VG1/LV1 | 对逻辑卷的容量进行缩减 |
| pvmove /dev/sdb1 | 将sdb1磁盘分区的数据转移到其他磁盘中 |
| vgreduce VG1 /dev/sdb1 | 把sdb1从VG1官族中移除 |
| pvremove /dev/sdb1 | 把sdb1分区从pv物理卷中释放处理 |
| lvcreate -L 20M -n backup -s -p r /dev/V1/LV1 | 备份逻辑卷 |
创建逻辑卷
1.分区
添加两块磁盘,分别为:/dev/sdb和/dev/sdc,分别对sdb和sdc进行分区。
sdb的分区是:两个主分区
sdc的分区是:一个主分区和一个扩展分区,其中扩展分区有分出了逻辑分区
/dev/sdb
[root@node1 ~]# fdisk /dev/sdb
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 0xc0a30b6f.
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-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5g
Unsupported suffix: '.
Supported: 10^N: KB (KiloByte), MB (MegaByte), GB (GigaByte)
2^N: K (KibiByte), M (MebiByte), G (GibiByte)
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G
Partition 1 of type Linux and of size 5 GiB is set
Command (m for help): N\
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2):
First sector (10487808-41943039, default 10487808):
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +1G
Partition 2 of type Linux and of size 1 GiB is set
Command (m for help): T #做LVM管理,需要修改分区类型为Linux LVM
Partition number (1,2, default 2): 1
Hex code (type L to list all codes): 8E
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): T
Partition number (1,2, default 2):
Hex code (type L to list all codes): 8E
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): P
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xc0a30b6f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 8e Linux LVM
/dev/sdb2 10487808 12584959 1048576 8e Linux LVM
Command (m for help): W #保存分区信息
The partition table has been altered!
Calling ioctl() to re-read partition table.
#更新操作系统磁盘分区表
[root@node1 ~]# partprobe /dev/sdb
[root@node1 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2
/dev/sdc
创建一个主分区和一个逻辑分区,用来测试扩展分区和逻辑分区是否能够创建PV物理卷并加入VG卷组,实验证明,扩展分区是无法创建PV和加入VG,主分区和逻辑分区可以。
扩展分区,要创建扩展分区之后,才能创建逻辑分区;
扩展分区只能创建一个,分区表支持创建最多四分主分区,
如果想要创建4个以上的分区,必须创建扩展分区,然后创建逻辑分区
[root@node1 ~]# fdisk /dev/sdc
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 0xc8bc1447.
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): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +6G
Partition 1 of type Linux and of size 6 GiB is set
Command (m for help): N
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): E
Partition number (2-4, default 2):
First sector (12584960-41943039, default 12584960):
Using default value 12584960
Last sector, +sectors or +size{K,M,G} (12584960-41943039, default 41943039):
Using default value 41943039
Partition 2 of type Extended and of size 14 GiB is set
Command (m for help): N
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): L #创建逻辑分区
Adding logical partition 5
First sector (12587008-41943039, default 12587008):
Using default value 12587008
Last sector, +sectors or +size{K,M,G} (12587008-41943039, default 41943039):
Using default value 41943039
Partition 5 of type Linux and of size 14 GiB is set
Command (m for help): P
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 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: 0xc8bc1447
Device Boot Start End Blocks Id System
/dev/sdc1 2048 12584959 6291456 83 Linux
/dev/sdc2 12584960 41943039 14679040 5 Extended
/dev/sdc5 12587008 41943039 14678016 83 Linux
Command (m for help): T #修改分区类型
Partition number (1,2,5, default 5): 1
Hex code (type L to list all codes): 8E
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): T
Partition number (1,2,5, default 5): 5
Hex code (type L to list all codes): 8E
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): P
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 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: 0xc8bc1447
Device Boot Start End Blocks Id System
/dev/sdc1 2048 12584959 6291456 8e Linux LVM
/dev/sdc2 12584960 41943039 14679040 5 Extended
/dev/sdc5 12587008 41943039 14678016 8e Linux LVM
Command (m for help): W
The partition table has been altered!
#更新操作系统磁盘分区表
[root@node1 ~]# ls /dev/sdc*
/dev/sdc /dev/sdc1 /dev/sdc2 /dev/sdc5
2.将物理分区与硬盘创建为物理卷(pvcreate)
报错
[root@node1 ~]# pvcreate /dev/sdb1
Can't open /dev/sdb1 exclusively. Mounted filesystem?
Can't open /dev/sdb1 exclusively. Mounted filesystem?
可以尝试修改配置文件:
/etc/lvm/lvm.conf
创建pv
[root@node1 ~]# pvcreate /dev/sdc2 # sdc2是扩展分区,无法做成物理卷PV
Device /dev/sdc2 excluded by a filter.
[root@node1 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
#把sdb1做成物理卷PV,也可以用下面的写法,一次性把所有主分区或逻辑分区做成物理卷PV
[root@node1 ~]# pvcreate /dev/sdb2 /dev/sdc1 /dev/sdc5
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdc5" successfully created.
#显示所有的物理卷
[root@node1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 5.00g 5.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdc1 lvm2 --- 6.00g 6.00g
/dev/sdc5 lvm2 --- <14.00g <14.00g
3.将物理卷(pv)创建为卷组(vgcreate)
创建卷组v1 ,卷组的pv物理卷,可u是不同磁盘,即整合了所有磁盘分区做成资源池
[root@node1 ~]# vgcreate V1 /dev/sdb1 /dev/sdc1
Volume group "V1" successfully created
[root@node1 ~]# vgcreate V2 /dev/sdb2 /dev/sdc5
Volume group "V2" successfully created
[root@node1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
V1 2 0 0 wz--n- 10.99g 10.99g
V2 2 0 0 wz--n- 14.99g 14.99g
centos 1 2 0 wz--n- <19.00g 0
4.在卷组里创建逻辑卷并格式化、挂载使用
创建逻辑卷
[root@node1 ~]# lvcreate -n LV1 -L 1G V1
#-n表示创建逻辑卷名,-L表示分配逻辑卷的空间大小,VG1表示在卷组VG1上创建逻辑卷LVtes
Logical volume "LV1" created.
[root@node1 ~]# lvcreate -n LV2 -L 1G V2
Logical volume "LV2" created.
[root@node1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 V1 -wi-a----- 1.00g
LV2 V2 -wi-a----- 1.00g
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
[root@node1 ~]# ls -l /dev/V1
total 0
lrwxrwxrwx. 1 root root 7 Apr 28 21:58 LV1 -> ../dm-2
[root@node1 ~]# ls -l /dev/V2
total 0
lrwxrwxrwx. 1 root root 7 Apr 28 21:58 LV2 -> ../dm-3
格式化逻辑卷
#物理卷需要格式化之后才能使用,格式化为ext4格式
[root@node1 ~]# mke2fs -t ext4 /dev/V1/LV1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
挂载逻辑卷
[root@node1 ~]# mkdir LV
[root@node1 ~]# mount /dev/V1/LV1 LV
[root@node1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1004M 17G 6% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/V1-LV1 976M 2.6M 907M 1% /root/LV
[root@node1 ~]# cd LV
[root@node1 LV]# LS
[root@node1 LV]# ls
lost+found
永久挂载逻辑卷
服务器重启自动挂载,需要将创建好的文件系统挂载信息添加到/etc/fstab里面.UUID可以通过 blkid命令查询.
为了查看/etc/fstab是否设置正确,可以先卸载逻辑卷data1,然后使用mount –a 使内核重新读取/etc/fstab,看是否能够自动挂载.
扩大卷组空间
如果卷组空间不够,扩大卷组空间
fdisk创建分区->修改分区类型Linux LVM->向内核注册新分区->创建物理卷->把物理卷加入需要扩容的卷组
增加一块硬盘,并将这块磁盘创建PV
#通知系统重新搜索磁盘
[root@node1 ~]# echo "- - - " > /sys/class/scsi_host/host0/scan
#将/dev/sdd分区并更改格式 按照之前的方法进行分区
Command (m for help): P
Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 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: 0xc3c0f2f4
Device Boot Start End Blocks Id System
/dev/sdd1 2048 10487807 5242880 8e Linux LVM
/dev/sdd2 10487808 20973567 5242880 5 Extended
/dev/sdd5 10489856 16781311 3145728 8e Linux LVM
#创建物理卷PV
[root@node1 ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
[root@node1 ~]# vgs #查看VG扩展前的信息,与扩展后对比
VG #PV #LV #SN Attr VSize VFree
V1 2 1 0 wz--n- 10.99g 9.99g
V2 2 1 0 wz--n- 14.99g 13.99g
centos 1 2 0 wz--n- <19.00g 0
#扩展VG卷组容量,把物理卷加入卷组
[root@node1 ~]# vgextend V1 /dev/sdd1
Volume group "V1" successfully extended
[root@node1 ~]# vgs #查看VG扩展后的信息
VG #PV #LV #SN Attr VSize VFree
V1 3 1 0 wz--n- <15.99g <14.99g
V2 2 1 0 wz--n- 14.99g 13.99g
centos 1 2 0 wz--n- <19.00g 0
拉伸逻辑卷

在对逻辑卷进行拉伸时,其实际就时向逻辑卷中增加PE的数量,而PE的数量时由VG中剩余PE的数量所决定的
拉伸逻辑卷是可以在线进行,不需要卸载掉我们的逻辑卷。当逻辑卷的大小不够用时,不需要对其进行卸载,就可以动态增加逻辑卷的大小
扩展逻辑卷(支持在线扩展)
[root@node1 ~]# echo "this is a test for LVM"> LV/test
#在挂载的逻辑卷里添加数据,用来测试在逻辑卷扩容是否会破坏原有数据
[root@node1 ~]# cat LV/test
this is a test for LVM
#扩容逻辑卷LV1,增加1G空间容量(从对应的卷组中划分空间容量)
[root@node1 ~]# lvs #扩容前
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 V1 -wi-ao---- 1.00g
LV2 V2 -wi-a----- 1.00g
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
[root@node1 ~]# lvextend -L +1G /dev/V1/LV1
Size of logical volume V1/LV1 changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
Logical volume V1/LV1 successfully resized.
[root@node1 ~]# lvs #扩容后
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 V1 -wi-ao---- 2.00g
LV2 V2 -wi-a----- 1.00g
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
#使用resize2fs命令来进行确认增加容量,前面的步骤只是初步分配,还不能实际使用,
#需要此步骤来确定实际分配使用
[root@node1 ~]# resize2fs /dev/V1/LV1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/V1/LV1 is mounted on /root/LV; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/V1/LV1 is now 524288 blocks long.
#xfs系统确认实际使用的命令
#xfs_growfs /dev/VGtest1/LVtest1
#数据没有受损
[root@node1 ~]# cat LV/test
this is a test for LVM
[root@node1 ~]# df -h #查看逻辑卷的容量是否增加;
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1004M 17G 6% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/V1-LV1 2.0G 3.1M 1.9G 1% /root/LV
缩减逻辑卷
注意:
1.缩减逻辑卷不能在线缩减,得先卸载
2.需要确保缩减后的空间大小依然能够存储原有的所有数据
3.在缩减之前需要强行检查文件,以确保文件系统处于一致性状态
4.缩减后,需要重新挂载
文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。如果逻辑卷小于文件系统,哪数据就出问题了。
顺序:先缩减逻辑边界,再缩减物理边界
[root@node1 ~]# umount LV
#处于挂载状态的LV逻辑卷无法强制检查
强行进行文件检查
e2fsck命令
e2fsck是检查ext2、ext3、ext4等文件系统的正确性。
补充说明:
e2fsck执行后的传回值及代表意义如下:
0 没有任何错误发生。
1 文件系统发生错误,并且已经修正。
2 文件系统发生错误,并且已经修正。
4 文件系统发生错误,但没有修正。
8 运作时发生错误。
16 使用的语法发生错误。
128 共享的函数库发生错误。
[root@node1 ~]# e2fsck -f /dev/V1/LV1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/V1/LV1: 12/131072 files (0.0% non-contiguous), 17197/524288 blocks
#首先需要确定缩减逻辑卷到多大空间容量,-1G表示缩减1G大小,1G表示缩减至1G,再进行逻辑卷LV容量缩减
缩减逻辑边界,将逻辑卷缩减至1.5G
[root@node1 ~]# resize2fs /dev/V1/LV1 1.5G
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Invalid new size: 1.5G
#缩减物理边界
[root@node1 ~]# lvreduce -L 1.5G /dev/V1/LV1
WARNING: Reducing active logical volume to 1.50 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce V1/LV1? [y/n]: y
Size of logical volume V1/LV1 changed from 2.00 GiB (512 extents) to 1.50 GiB (384 extents).
Logical volume V1/LV1 successfully resized.
挂载出现错误
[root@node1 ~]# mount /dev/V1/LV1 LV
mount: wrong fs type, bad option, bad superblock on /dev/mapper/V1-LV1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
root@node1 ~]# dmesg | tail
[20523.888746] EXT4-fs (dm-2): resizing filesystem from 262144 to 524288 blocks
[20523.994173] EXT4-fs (dm-2): resized filesystem to 524288
[21824.339655] EXT4-fs (dm-2): bad geometry: block count 524288 exceeds size of device (393216 blocks)
之后
[root@node1 ~]# resize2fs /dev/V1/LV1 1G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/V1/LV1 to 262144 (4k) blocks.
The filesystem on /dev/V1/LV1 is now 262144 blocks long.
[root@node1 ~]# lvreduce -L 1G /dev/V1/LV1
WARNING: Reducing active logical volume to 1.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce V1/LV1? [y/n]: y
Size of logical volume V1/LV1 changed from 1.50 GiB (384 extents) to 1.00 GiB (256 extents).
Logical volume V1/LV1 successfully resized.
[root@node1 ~]# mount /dev/V1/LV1 LV
[root@node1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 17811456 1074316 16737140 7% /
devtmpfs 3982984 0 3982984 0% /dev
tmpfs 3995144 0 3995144 0% /dev/shm
tmpfs 3995144 12024 3983120 1% /run
tmpfs 3995144 0 3995144 0% /sys/fs/cgroup
/dev/sda1 1038336 148712 889624 15% /boot
tmpfs 799032 0 799032 0% /run/user/0
/dev/mapper/V1-LV1 999320 2568 933184 1% /root/LV
缩减磁盘空间
发现物理磁盘空间使用不足,将其中一块硬盘或分区拿掉,避免磁盘浪费
1.通过pvmove命令转移空间数据
2.通过vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去
3.通过pvremove命令将即将坏的磁盘或者分区从系统种删除掉
4.手工拆除硬盘或者通过一些工具修复分区
[root@node1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 V1 lvm2 a-- <5.00g <4.00g
/dev/sdb2 V2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc1 V1 lvm2 a-- <6.00g <6.00g
/dev/sdc5 V2 lvm2 a-- <14.00g <13.00g
/dev/sdd1 V1 lvm2 a-- <5.00g <5.00g
#把sdb1磁盘分区的数据转移到其它磁盘上
[root@node1 ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 3.91%
/dev/sdb1: Moved: 100.00%
#把分区sdb1从VG卷组中移除
[root@node1 ~]# vgreduce V1 /dev/sdb1
Removed "/dev/sdb1" from volume group "V1"
#把sdb1分区从PV物理卷中释放出来
[root@node1 ~]# pvremove /dev/sdb1
Labels on physical volume "/dev/sdb1" successfully wiped.
[root@node1 ~]# cat LV/test
this is a test for LVM
[root@node1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb2 V2 lvm2 a-- 1020.00m 1020.00m
/dev/sdc1 V1 lvm2 a-- <6.00g <5.00g
/dev/sdc5 V2 lvm2 a-- <14.00g <13.00g
/dev/sdd1 V1 lvm2 a-- <5.00g <5.00g
重新把/dev/sdb1加入到V1中
[root@node1 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@node1 ~]# vgextend V1 /dev/sdb1
Volume group "V1" successfully extended
删除逻辑卷
1、先通过umount命令卸载掉逻辑卷lvdata1
2、修改/etc/fstab里面逻辑卷的挂载信息,否则系统有可能启动不起来。
3、通过lvremove 删除逻辑卷lvdata1
4、通过vgremove 删除卷组vgdata
5、通过pvremove 将物理卷转化成普通分区。
删除完了,要修改分区的id标识。修改成普通Linux分区即可。
快照卷
lvcreate -n LV_NAME -L #{K/M/G/T} VG_NAME #创建逻辑卷
-s创建快照卷
1.数据的增长量不能超过快照卷大小
2.快照卷应该只是可读的
3.跟原卷在同一卷组中,在划分时,需给快照卷预留空间
[root@node1 ~]# cd LV
[root@node1 LV]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.1G 16G 7% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/V1-LV1 976M 2.6M 912M 1% /root/LV
利用LV1逻辑卷,快照形成一个备份的物理卷BackUp(逻辑卷快照功能)
[root@node1 LV]# lvcreate -L 20M -n BackUp -s -p r /dev/V1/LV1
Logical volume "BackUp" created.
[root@node1 LV]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
BackUp V1 sri-a-s--- 20.00m LV1 0.06
LV1 V1 owi-aos--- 1.00g
LV2 V2 -wi-a----- 1.00g
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
[root@node1 LV]# mount /dev/V1/BackUp /tmp/back
mount: /dev/mapper/V1-BackUp is write-protected, mounting read-only
[root@node1 LV]# cat /tmp/back/test
this is a test for LVM
删除快照卷
[root@node1 LV]# lvremove /dev/V1/BackUp
Logical volume V1/BackUp contains a filesystem in use.
#需要先卸载
[root@node1 LV]# umount /tmp/back
[root@node1 LV]# lvremove /dev/V1/BackUp
Do you really want to remove active logical volume V1/BackUp? [y/n]: y
Logical volume "BackUp" successfully removed
ssm
System Storage Manager(ssm )系统存储管理器,也可以用于管理逻辑卷。
安装
yum -y install system-storage-manager
命令
ssm list
显示所有检测到的设备、池、卷和快照的信息
[root@localhost ~]# ssm list
###第一部分是物理设备
-----------------------------------------------------------
Device Free Used Total Pool Mount point
-----------------------------------------------------------
/dev/sda 40.00 GB
/dev/sda1 1.00 GB /boot
/dev/sda2 4.00 MB 38.99 GB 39.00 GB centos
/dev/sdb 2.00 GB
/dev/sdc 2.00 GB
/dev/sdd 2.00 GB
-----------------------------------------------------------
##第二部分是存储池
--------------------------------------------------
Pool Type Devices Free Used Total
--------------------------------------------------
centos lvm 1 4.00 MB 38.99 GB 39.00 GB
--------------------------------------------------
##第三部分是存储池中的逻辑卷
--------------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
--------------------------------------------------------------------------------------
/dev/centos/root centos 36.99 GB xfs 36.97 GB 34.44 GB linear /
/dev/centos/swap centos 2.00 GB linear
/dev/sda1 1.00 GB xfs 1014.00 MB 864.65 MB /boot
--------------------------------------------------------------------------------------
创建逻辑卷 ssm create
# 创建挂载目录
[root@localhost ~]# mkdir /mnt/volume1
# 创建逻辑卷
[root@localhost ~]# ssm create -s 1G -n lv1 -p vg0 --fstype xfs /dev/sd{b,c,d} /mnt/volume1
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
Volume group "vg0" successfully created
Logical volume "lv1" created.
meta-data=/dev/vg0/lv1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, 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@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 37G 2.6G 35G 7% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg0-lv1 1014M 33M 982M 4% /mnt/volume1
扩展逻辑卷 ssm resize
可以调整逻辑卷的大小
[root@localhost ~]# ssm resize -s +2G vg0/lv1
Size of logical volume vg0/lv1 changed from 1.00 GiB (256 extents) to 3.00 GiB (768 extents).
Logical volume vg0/lv1 successfully resized.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 37G 2.6G 35G 7% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg0-lv1 3.0G 33M 3.0G 2% /mnt/volume1
创建快照 ssm snapshot
[root@localhost ~]# ssm snapshot /dev/vg0/lv1
Rounding up size to full physical extent 412.00 MiB
Logical volume "snap20200325T195111" created.
[root@localhost ~]# ssm list snap
------------------------------------------------------------------------
Snapshot Origin Pool Volume size Used Type
------------------------------------------------------------------------
/dev/vg0/snap20200325T195111 lv1 vg0 412.00 MB 0.00 KB linear
删除卷、池
[root@localhost ~]# umount /mnt/volume1/
# 删除vg0池和lv1卷
[root@localhost ~]# ssm remove vg0
Do you really want to remove volume group "vg0" containing 2 logical volumes? [y/n]: y
Do you really want to remove active origin logical volume vg0/lv1 with 1 snapshot(s)? [y/n]: y
Logical volume "snap20200325T195111" successfully removed
Logical volume "lv1" successfully removed
Volume group "vg0" successfully removed
然后从物理卷里面把/dev/sdb,/dev/sdc,/dev/sdd移除掉。
[root@localhost ~]# pvremove /dev/sd{b,c,d}
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sdd" successfully wiped
