如何在Linux中将系统盘改成LVM (linux中系统盘改lvm)

Linux LVM(Logical Volume Manager)是一种集成了存储管理功能的软件,可以使硬盘分区变得更灵活、更可靠,并且可以实现数据的动态扩容和迁移。如果你想将你的Linux系统从传统分区的方式改为采用LVM的方式进行管理,本文将为你提供详细的步骤和操作方法。

目前,在Linux服务器领域,LVM已经成为管理存储的标准工具,因为它提供了更加灵活的存储管理方式。LVM可以让你随时调整分区大小,也可以让你把不同的硬盘空间使用起来。

因此,将系统盘改成LVM不仅能够方便我们管理磁盘空间,还能有效的提升系统运行效率和稳定性。

接下来,我们将详细讲解Linux中如何将系统分区改成LVM。

步骤一:备份数据

在操作LVM之前,一定要备份你的重要数据,以免在操作过程中出现错误造成数据丢失。可以使用rsync、scp等命令进行备份。

步骤二:制作LVM分区

需要将系统盘的分区格式化。我们使用fdisk命令来创建分区:

$ fdisk /dev/sda

然后输入wq结束编辑分区表。

接下来,我们将新建的分区做成LVM分区:

$ pvcreate /dev/sda1

将sda1分区做成物理卷。如果需要多个分区都做成LVM分区,可以替换掉sda1为具体的分区。这样做的目的是将这个物理卷加入到LVM卷组。

$ vgcreate vg1 /dev/sda1

将这个物理卷加入卷组。卷组的概念就像是一个大的存储池,把物理卷加入卷组,就相当于把这个物理卷的存储空间加入到这个存储池。

$ lvcreate -n lvroot -L 50G vg1

在vg1卷组中新建一个名为lvroot的逻辑卷,并且限制它的大小为50G。这个逻辑卷可以理解为是卷组中的一个子文件系统,通过这个逻辑卷来提供存储空间。

步骤三:格式化

接下来将这个逻辑卷格式化为具体的文件系统,比如ext4:

$ mkfs.ext4 /dev/mapper/vg1-lvroot

步骤四:挂载逻辑卷

然后将这个逻辑卷挂载到根目录。

$ mount /dev/mapper/vg1-lvroot /mnt

现在你可以将文件复制到根分区,并且设置fstab让服务器启动时自动挂载这个逻辑卷。

$ echo ‘/dev/mapper/vg1-lvroot / ext4 defaults,noatime,discard 0 0’ >> /etc/fstab

至此,系统盘转变成LVM的过程已经完成。

以上就是详细的在Linux中将系统盘转变为LVM的步骤和操作方法。对于熟悉Linux的管理员而言,这个过程并不困难,操作起来也是比较简单的。

LVM可以为Linux的存储管理带来更大的灵活性和可靠性,采用LVM进行分区管理方式,可以轻松地扩容、迁移、快照和备份数据,大大提升了Linux服务器的运维效率。如果你想提升你的管理能力,建议你掌握LVM的使用方法,这是一项非常必要的技能。

相关问题拓展阅读:

linux之lvm分区扩容

以下步骤的前提为磁盘lvm分区

1、加入新硬盘

2、分区

PV(physical volume)即物理卷,就是物理磁盘,可以通过fdisk -l 查看操作系统有几块硬盘

VG(volume group)即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘

LV(logical volume)及逻辑卷,就是在VG(指定的物理磁盘组)里面划分出来的

可以说成是老运羡PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区.

PV->VG->LV-> 文件系统使用(挂载到某个目录)

对新磁盘/dev/sdb进行分区

# parted /dev/sdb

GNU Parted 3.1

Using /dev/sdb

Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted) mklabel

New disk label type? gpt

(parted) mkpart

Partition name? ?

File system type? ? xfs

Start? 1

End? 10G

(parted) q

Information: You may need to update /etc/fstab.

创建物理卷 pvcreate /dev/sdb1

创建卷组 并将物理卷加入其中 vgcreate data /dev/sdb1 (data为卷组名)

创建逻辑卷组并分配大小lvcreate -l +100%FREE -n lvdata data

格式化mkfs.xfs /dev/mappper/data-lvdata

开机挂载新硬盘vi /etc/fstab

挂载 mount -a (先建悄毕data目录 mkdir /data)

查看df -lh

卸载挂点umount /dev/mapper/data-lvdata

3、扩容

磁盘/dev/sdb只分10个G。。还有10G没有分配。。所以继续进行分区

parted /dev/sdb

打印分区信息表可以看到有两个分区了。

创建物理卷 pvcreat /dev/sdb2

查侍拍看将要扩容的卷组信息vgdisplay 可见可扩容大小为0

将物理卷扩展到卷组 #vgextend data /dev/sdb2 (此处‘cl’是卷组名称)

再次查看卷组信息vgdisplay 可扩容空间变成10G

将卷组中空闲空间扩展到 /data#lvextend -l +100%FREE /dev/mapper/data-lvdata

.刷新文件系统是扩容生效#xfs_growfs /dev/mapper/data-lvdata

关于Linux系统LVM问题

lvm 操作会破坏原有分区的数据。

你不是已经提问过了吗

不能直接操作,除非这几个分区上的文件系统不要了

并且/boot是肯定要建在分区上,不能建在LV上

除了/boot外的要做lvm,例如/home:

cd /

#备份:

tar cvf /tmp/home.tar home      

#卸载文件系统,否则无法进行后面操作:

umount /home

#用fdisk命令将分区标志由83改为8e,具体操作略:

fdisk /dev/sda

#将分区sda4初始化为物理卷,这时候数据丢了,你可以mount /home试一下:

pvcreate /dev/sda4 vgcreate 

#创建vg:

vgcreate vghome /dev/sda4 

#创建lv:

lvcreate -l 100 -n lvhome vghome 

#创建文件系统:

mkfs.ext3 /dev/vghome/lvhome 

#重新挂载文件系统:

mount /dev/vgome/lvhome /home

#恢复home备份

tar xvf /tmp/home.tar 

#将/etc/fstab里关于/home的项修改正确,将/dev/sda4替换成 /dev/vghome/lvhome:

vi /etc/fstab

已经建的分区是linux83类型的分区,不能LVM操作,8e类型的才是LVM的,可通过fdisk /dev/sda命令查看。这种情况只能对新建分区进行LVM操作。

可以,不会破坏原有的数据。

如何使用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逻辑卷管理器技术:

# pvcreate /dev/sdb /dev/sdc

Physical volume “/dev/sdb” successfully created

Physical volume “/dev/空好祥sdc” successfully created

第2步:将两块硬盘设备都加入到storage卷组中,然后查看下卷组的状态:

# vgcreate storage /dev/sdb /dev/sdc

Volume group “storage” successfully created

# 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/ 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的逻辑卷:

# lvcreate -n vo -l 37 storage

Logical volume “vo” created

# 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,:22:

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设备目录中(实际上是做了一个符号链接,但读者们无需关心),同时会以卷组的名称来建立一个目录,其中保存有逻辑卷的设备映射文件。

# mkfs.ext4 /dev/storage/vo

mke2fs 1.42.9 (28-Dec-2023)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

38000 inodes,blocks

7577 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=

19 block groups

8192 blocks per group, 8192 fragments per group

2023 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

# mkdir /linuxprobe

# mount /dev/storage/vo /linuxprobe

第5步:查看挂载状态,并写入到配置文件永久生效:

# 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

# echo “/dev/storage/vo /linuxprobe ext4 defaults 0 0” >> /etc/fstab

7.2.2 扩容逻辑卷

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

# umount /linuxprobe

第1步:将上个实验中的逻辑卷vo扩展至290M:

# 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步:检查磁盘完整性,重置硬盘容量:

# e2fsck -f /dev/storage/vo

e2fsck 1.42.9 (28-Dec-2023)

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/blocks

# resize2fs /dev/storage/vo

resize2fs 1.42.9 (28-Dec-2023)

Resizing the filesystem on /dev/storage/vo to(1k) blocks.

The filesystem on /dev/storage/vo is nowblocks long.

第3步:重新挂载硬盘设备并查看挂载状态:

# mount -a

# 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逻辑卷的缩小操作需要先检查文件系统的完整性,当然这也是在保证咱们的数据安全,操作前记得先把文件系统卸载掉:

# umount /linuxprobe

第1步:检查文件系统的完整性:

# e2fsck -f /dev/storage/vo

e2fsck 1.42.9 (28-Dec-2023)

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/blocks

第2步:将LV逻辑卷的容量减小到120M:

# resize2fs /dev/storage/vo 120M

resize2fs 1.42.9 (28-Dec-2023)

Resizing the filesystem on /dev/storage/vo to(1k) blocks.

The filesystem on /dev/storage/vo is nowblocks long.

# lvreduce -L 120M /dev/storage/vo

WARNING: Reducing active logical volume to 120.00 MiB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vo? : y

Reducing logical volume vo to 120.00 MiB

Logical volume vo successfully resized

第3步:将文件系统重新挂载并查看系统状态:

# mount -a

# 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逻辑卷的容量,第二是快照功能仅一次有效,一旦被还原后则会被自动立即删除。我们首先应当查看下卷组的信息:

# 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/ 39.88 GiB

VG UUID CTaHAK-0TQv-Abdb-R83O-RU6V-YYkx-8o2R0e

………………省略部分输出信息………………

通过卷组的输出信息可以很清晰的看到卷组中已用120M,空闲资源有39.88G,接下来咱们在逻辑卷设备所挂载的目录中用重定向写入一个文件吧:

# echo “Welcome to Linuxprobe.com” > /linuxprobe/readme.txt

# ls /linuxprobe

total 14

drwx——. 2 root rootFeb 1 07:18 lost+found

-rw-r–r–. 1 root root 26 Feb 1 07:38 readme.txt

第1步:使用-s参数来生成一个快照卷,使用-L参数来指定切割的大小,另外要记得在后面写上这个快照是针对那个逻辑卷做的。

# lvcreate -L 120M -s -n SNAP /dev/storage/vo

Logical volume “SNAP” created

# 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,:42:

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的垃圾文件,这样再来看快照卷的状态就会发现使用率上升了:

# dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M

1+0 records in

1+0 records out

bytes (105 MB) copied, 3.35432 s, 31.3 MB/s

# 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,:42:

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快照卷的效果,咱们需要对逻辑卷进行快照合并还原操作,在这之前记得先卸载掉逻辑卷设备与目录的挂载~

# umount /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垃圾文件也被清除了:

# mount -a

# ls /linuxprobe/

lost+found readme.txt

linux中系统盘改lvm的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux中系统盘改lvm,如何在Linux中将系统盘改成LVM,linux之lvm分区扩容,关于Linux系统LVM问题,如何使用LVM卷管理Linux系统中的磁盘的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux中将系统盘改成LVM (linux中系统盘改lvm)