当前位置:首页 » 硬盘大全 » lvm双硬盘
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

lvm双硬盘

发布时间: 2023-01-08 15:59:09

⑴ centos5.8 系统,两个硬盘做的lvm逻辑卷管理的操作系统,/boot未单独做

之前你做了什么?
用系统盘启动,选rescue模式,如果硬盘没坏的话,应该可以挂载原先的文件系统

⑵ LVM创建逻辑卷,实现单个目录挂载多个磁盘

LVM 是 Logical Volume Manager 的缩写,中文一般翻译为 "逻辑卷管理",它是 Linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可以利用 LVM 在不重新对磁盘分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过 LVM 就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

LVM 的优点如下:

LVM 也有一些缺点:

LVM 的优点对服务器的管理非常有用,但对于桌面系统的帮助则没有那么显着,所以需要我们根据使用的场景来决定是否应用 LVM。

通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。下面是 LVM 中主要涉及的一些概念。

可以这么理解,LVM 是把硬盘的分区分成了更小的单位(PE),再用这些单元拼成更大的看上去像分区的东西(PV),进而用 PV 拼成看上去像硬盘的东西(VG),最后在这个新的硬盘上创建分区(LV)。文件系统则建立在 LV 之上,这样就在物理硬盘和文件系统中间添加了一层抽象(LVM)。下图大致描述了这些概念之间的关系:

对上图中的结构做个简单的介绍:两块物理硬盘 A 和 B 组成了 LVM 的底层结构,这两块硬盘的大小、型号可以不同。PV 可以看做是硬盘上的分区,因此可以说物理硬盘 A 划分了两个分区,物理硬盘 B 划分了三个分区。然后将前三个 PV 组成一个卷组 VG1,后两个 PV 组成一个卷组 VG2。接着在卷组 VG1 上划分了两个逻辑卷 LV1 和 LV2,在卷组 VG2 上划分了一个逻辑卷 LV3。最后,在逻辑卷 LV1、LV2 和 LV3 上创建文件系统,分别挂载在 /usr、/home 和 /var 目录。

step-1:使用 fdisk -l 查看当前的磁盘信息

step-3:安装gdisk ,使用gdisk对物理磁盘进行分区

通过 p 命令可以查看磁盘当前的状态:

输出中的前几行是磁盘的基本信息,比如总大小为 20G,一共有多少个扇区(sector),每个扇区的大小,当前剩余的空间等等。然后是已经存在的分区信息(上图显示还没有任何分区):

下面通过 以下命令来创建新分区(依次敲):

step-4:如果之前已经划分为多个分区,则可以执行 fdisk /dev/sdc 合并为1个分区,把分区删除后,再对/dev/sdc进行LVM

step-5:现在我们可以基于磁盘分区 /dev/sdd1等来创建 LVM 物理卷(LV),可以通过 pvcreate 命令来完成

使用 pvdisplay 可以看到我们创建的5个物理卷。

step-6:基于一个或多个 PV,可以创建 VG,lvm_data是vg组的名字,可以自定义,,vgs 命令可以观察 VG 的信息

step-7:有了 VG 就可以创建逻辑卷 LV 了,lvcreate 命令用来创建 LV,让我们在前面创建的lvm_data上创建名称为lvm_data_1的 LV

当我们创建 LV lvm_data/lvm_data_1时,其实是创建了名称为 /dev/lvm_data/lvm_data_1的设备文件,现在我们来格式化这个逻辑卷(在该 LV 上创建文件系统),目标为比较常见的 ext4 格式:

最后可以挂载到一个目录上,查看结果:

⑶ Proxmox VE使用LVM新硬盘(多硬盘)

PVE 提供 Web 界面可以完成大部分的操作。但使用阵列卡,如 Dell 的 PERC 阵列卡等,在 Web 界面并不能直接完成添加硬盘和创建 LVM 卷的操作。

以下为以 Dell PERC 阵列卡挂载新硬盘为例,介绍如何为 PVE 添加新硬盘。

使用阵列卡,添加硬盘需要先在开机(或根据不同的阵列卡操作)进行挂载。
完成挂载后,在系统中查看新硬盘是否已成功挂载。

如果能看到新挂载的硬盘,就证明硬盘硬件已经安装完成。

给新硬盘创建分区

创建 LVM 物理卷(PV)

创建新的 LVM 卷组 (VG)

不创建新 LVM 卷组,添加新物理卷至已有卷组

到这里,我们可以在 PVE Web 界面上 节点 - 磁盘 上看到新的硬盘。

接下来,进入 数据中心 界面

选择 存储

点击 添加 - LVM

根据需要填写 ID 选择 卷组 后,点击 添加 即可。

随后边可以在节点下看到刚刚新添加的存储,以后便可以在创建新虚拟机或者在原有虚拟机下选择这块新加入硬盘的存储了。

⑷ 如何使用LVM卷管理Linux系统中的磁盘

LVM逻辑卷管理器是对Linux系统中对存储资源进行管理的一种机制,部署LVM逻辑卷管理器需要依次对对物理卷、卷组和逻辑卷的逐个配置,常见的命令分别包括有:
功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend

为避免实验之间互相冲突,请您自行还原虚拟机到最初始状态,并在虚拟机中添加两块新硬盘设备后开机,如图7-7所示:

图7-7 在虚拟机中添加一块新的硬盘设备
在虚拟机中添加两块新硬盘设备的目的是为了更好的向同学们演示LVM逻辑卷管理器对于让用户无需关心底层物理硬盘设备的特性,咱们将会对这两块新的硬盘先进行创建物理卷操作,可以简单理解成让硬盘设备支持了LVM技术,然后将两块硬盘进行卷组合并,卷组的名称可以由您来自定义,接下来是将合并后的卷组根据需求再切割出一个约为150M的逻辑卷设备,最后将这个逻辑卷设备格式化成XFS文件系统后挂载使用。现在知道大致的流程后就可以,刘遄老师还会对下面每一个步骤再做一些简单的描述。
第1步:让新添加的两块硬盘设备支持LVM逻辑卷管理器技术:
[root@linuxprobe ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created

第2步:将两块硬盘设备都加入到storage卷组中,然后查看下卷组的状态:
[root@linuxprobe ~]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
[root@linuxprobe ~]# vgdisplay
--- Volume group ---
VG Name storage
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiB
VG UUID KUeAMF-qMLh-XjQy-ArUo-LCQI-YF0o-pScxm1
………………省略部分输出信息………………

第3步:切割出一个约为150M的逻辑卷设备:
同学们需要注意下切割单位的问题,在LVM逻辑卷管理器对LV逻辑卷的切割上面有两种计量单位,第一种是常见以-L参数来以容量单位为对象,例如使用-L 150M来生成一个大小为150M的逻辑卷,还可以使用-l参数来指定要使用PE基本单元的个数,默认每个PE的大小为4M,因此允许使用-l 37来生成一个大小为37*4M=148M的逻辑卷:
[root@linuxprobe ~]# lvcreate -n vo -l 37 storage
Logical volume "vo" created
[root@linuxprobe ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/vo
LV Name vo
VG Name storage
LV UUID D09HYI-BHBl-iXGr-X2n4-HEzo-FAQH-HRcM2I
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 01:22:54 -0500
LV Status available
# open 0
LV Size 148.00 MiB
Current LE 37
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
………………省略部分输出信息………………

第4步:将生成好的逻辑卷格式化后挂载使用:
Linux系统会把LVM逻辑卷管理器中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接,但读者们无需关心),同时会以卷组的名称来建立一个目录,其中保存有逻辑卷的设备映射文件。
[root@linuxprobe ~]# mkfs.ext4 /dev/storage/vo
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
38000 inodes, 151552 blocks
7577 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
19 block groups
8192 blocks per group, 8192 fragments per group
2000 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[root@linuxprobe ~]# mkdir /linuxprobe
[root@linuxprobe ~]# mount /dev/storage/vo /linuxprobe

第5步:查看挂载状态,并写入到配置文件永久生效:
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.8M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 145M 7.6M 138M 6% /linuxprobe
[root@linuxprobe ~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab

7.2.2 扩容逻辑卷
虽然咱们的卷组是由两块硬盘设备共同组成的,但用户使用存储资源时感知不到底层硬盘的结构,也不用关心底层是由多少块硬盘组成的,只要卷组中的资源足够就可以一直为逻辑卷扩容,扩展前请一定要记得卸载设备和挂载点的关联。
[root@linuxprobe ~]# umount /linuxprobe

第1步:将上个实验中的逻辑卷vo扩展至290M:
[root@linuxprobe ~]# lvextend -L 290M /dev/storage/vo
Rounding size to boundary between physical extents: 292.00 MiB
Extending logical volume vo to 292.00 MiB
Logical volume vo successfully resized

第2步:检查磁盘完整性,重置硬盘容量:
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo
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/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
[root@linuxprobe ~]# resize2fs /dev/storage/vo
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 299008 (1k) blocks.
The filesystem on /dev/storage/vo is now 299008 blocks long.

第3步:重新挂载硬盘设备并查看挂载状态:
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 279M 2.1M 259M 1% /linuxprobe

7.2.3 缩小逻辑卷
相比于扩容逻辑卷来讲,对逻辑卷的缩小操作存在着更高丢失数据的风险,所以在生产环境中同学们一定要留心记得提前备份好数据,另外Linux系统规定对LVM逻辑卷的缩小操作需要先检查文件系统的完整性,当然这也是在保证咱们的数据安全,操作前记得先把文件系统卸载掉:
[root@linuxprobe ~]# umount /linuxprobe

第1步:检查文件系统的完整性:
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo
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/storage/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks

第2步:将LV逻辑卷的容量减小到120M:
[root@linuxprobe ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.
The filesystem on /dev/storage/vo is now 122880 blocks long.
[root@linuxprobe ~]# lvrece -L 120M /dev/storage/vo
WARNING: Recing active logical volume to 120.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to rece vo? [y/n]: y
Recing logical volume vo to 120.00 MiB
Logical volume vo successfully resized

第3步:将文件系统重新挂载并查看系统状态:
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.0G 15G 17% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 113M 1.6M 103M 2% /linuxprobe

7.2.4 逻辑卷快照
除此之外LVM逻辑卷管理器还具备有“快照卷”的功能,这项功能很类似于我们其他软件的还原时间点功能。例如我们可以对某一个LV逻辑卷设备做一次快照,如果今后发现数据被改错了,咱们可以将之前做好的快照卷进行覆盖还原,LVM逻辑卷管理器的快照功能有两项特点,第一是快照卷的大小应该尽量等同于LV逻辑卷的容量,第二是快照功能仅一次有效,一旦被还原后则会被自动立即删除。我们首先应当查看下卷组的信息:
[root@linuxprobe ~]# vgdisplay
--- Volume group ---
VG Name storage
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 30 / 120.00 MiB Free PE / Size 10208 / 39.88 GiB
VG UUID CTaHAK-0TQv-Abdb-R83O-RU6V-YYkx-8o2R0e
………………省略部分输出信息………………

通过卷组的输出信息可以很清晰的看到卷组中已用120M,空闲资源有39.88G,接下来咱们在逻辑卷设备所挂载的目录中用重定向写入一个文件吧:
[root@linuxprobe ~]# echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt
[root@linuxprobe ~]# ls /linuxprobe
total 14
drwx------. 2 root root 12288 Feb 1 07:18 lost+found
-rw-r--r--. 1 root root 26 Feb 1 07:38 readme.txt

第1步:使用-s参数来生成一个快照卷,使用-L参数来指定切割的大小,另外要记得在后面写上这个快照是针对那个逻辑卷做的。
[root@linuxprobe ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo
Logical volume "SNAP" created
[root@linuxprobe ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/SNAP
LV Name SNAP
VG Name storage
LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
LV snapshot status active destination for vo
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
………………省略部分输出信息………………

第2步:咱们在LV设备卷所挂载的目录中创建一个100M的垃圾文件,这样再来看快照卷的状态就会发现使用率上升了:
[root@linuxprobe ~]# dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 3.35432 s, 31.3 MB/s
[root@linuxprobe ~]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/SNAP
LV Name SNAP
VG Name storage
LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
LV snapshot status active destination for vo
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 83.71%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3

第3步:为了校验SNAP快照卷的效果,咱们需要对逻辑卷进行快照合并还原操作,在这之前记得先卸载掉逻辑卷设备与目录的挂载~
[root@linuxprobe ~]# umount /linuxprobe
[root@linuxprobe ~]# lvconvert --merge /dev/storage/SNAP
Merging of volume SNAP started.
vo: Merged: 21.4%
vo: Merged: 100.0%
Merge of snapshot into logical volume vo has finished.
Logical volume "SNAP" successfully removed

第4步:快照卷会被自动删除掉,并且刚刚在逻辑卷设备被快照后再创建出来的100M垃圾文件也被清除了:
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# ls /linuxprobe/
lost+found readme.txt

看下《Linux就该这么学》第7章节吧,第7章 使用RAID与LVM磁盘阵列技术

⑸ LVM设置+添加硬盘+扩容+缩容

系统盘:/dev/vda1   数据盘:/dev/vdb1

在数据盘上建立LVM

1. fdisk -l

2.fdisk /dev/vdb (在数据盘上创建linux_8e分区)

2.1 

2.2 同步分区表 partprobe或者重启

3.pvscan

4.pvcreate /dev/vdb1

5.pvdisplay 或 pvs

6.vgscan

7.vgcreate your_vgname /dev/vdb1 例:vgcreate vg1 /dev/vdb1

注:如已存在该vg,将新硬盘空间加入该vg使用vgextend your_vgname /dev/vdb1

8.vgdisplay 或 vgs

9.lvcreate -L 40G -n your_lvname  your_vgname 

lvcreate -l PE总个数 your_lvname  your_vgname 

例:lvcreate -L 40956M -n lv1 vg1 

因为实际容量为40G减去1个PE,每个PE是4M(用vgdisplay查看),所以Free总容量是(1024x40-4)M

lvcreate -l 76799 -n lv1 vg1 

76799是PE总个数(用vgdisplay查看)

10.lvdisplay

11.fdisk -l

12.mkfs.ext4  /dev/mapper/vg1-lv1

或 mkfs.xfs /dev/mapper/vg1-lv1   但xfs文件系统无法缩容,不建议使用

注:使用fdisk -l 来确定lv和/dev/mapper/****的对应关系,参考http://blog.csdn.net/gtlions/article/details/22440095

13.mount  /dev/mapper/vg1-lv1  /data

参考:

https://www.qcloud.com/doc/proct/213/2974

-------扩容---------------------

1.备份

xfsmp -f root.mp /

xfsmp -I

2.通过fdisk的n指令增加一个分区(如增加磁盘)

fdisk -l

fdisk /dev/sdb3

partprobe 分区立即生效

3.创建物理卷PV(如增加磁盘)

fdisk -l

pvcreate  /dev/sdb3

4.vg扩容

vgextend centos /dev/sdb3

5.lv扩容

lvresize -r -L +450G  /dev/mapper/centos-root  (该处可填写lvdisplay中显示的LV Path)

或lvextend -r -l +100%FREE  /dev/mapper/centos-root

注意:-r 或--resizefs参数表示自动调用在线扩容程序,ext调用resize2fs,xfs调用xfs_growfs

6.在线扩容文件系统(上一步中如带-r或--resizefs且文件系统支持fsadm,则该步可跳过)

ext文件系统:resize2fs /dev/mapper/centos-root

xfs文件系统:xfs_growfs /dev/mapper/centos-root

7.查看 df -lh

参考:http://www.cnblogs.com/haoyufeng/p/4439192.html

---------缩容---------------

ext支持缩容,xfs不支持缩容只能扩容,

以下是ext缩容步骤

1.

xfs要缩小容量,只能先删除然后再建立lv

1.备份 

tar zcvf  home.tar.gz  /home

或xfsmp -f home.mp /home

2.卸载并查看是否有应用仍在使用对应的目录分区

umount /home

lsof -f |grep /home

注意:在跑的容器挂载卷会使用文件系统,需要lsof -f |grep 多几次

3.删除对应lv

lvdisplay

lvremove /dev/centos/home

4.建立新的lv

lvcreate -L 300GB -n home centos

5.格式化

fdisk -l

mkfs.xfs  /dev/mapper/centos-home

注:如想更换为ext4,此处使用.mkfs.ext4 /dev/mapper/centos-home

6.挂载

mount  /dev/mapper/centos-home /home

vi /etc/fstab

7.还原

tar zxvf home.tar.gz