Linux之LVM

2024-08-29 12:18
文章标签 linux lvm

本文主要是介绍Linux之LVM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        LVM卷管理本质上就是将多个存储资源整合,再划分的过程。可以将多个物理分区通过软件,整合在一起,让这些分区看起来就像是一个独立的大磁盘一样。LVM是基于OS层面,将OS识别到的物理磁盘(可以是真正的物理磁盘,也可以是经过以RAID卡虚拟化的逻辑磁盘〕进行组合,再分配的软件。物理的分区,首先要通过fdisk 将它的类型改为“8e”。

实践:
1、使用fdisk新建分区,然后通过partprobe重载分区表,避免重启系统

[root@BG-IAP ~]# fdisk /def/sdf
[root@BG-IAP ~]# partprobe /dev/sdf


2、创建pv

[root@BG-IAP ~]# pvcreate /dev/sdf1 /dev/sdf2
Physical volume "/dev/sdf1" successfully created.
Physical volume "/dev/sdf2" successfully created.


3、创建vg

[root@BG-IAP ~]# vgcreate datavg /dev/sdf{1,2}
Volume group "datavg" successfully created


4、创建lv

[root@BG-IAP ~]# lvcreate -n lv1 -L 1G datavg
Logical volume "lv1" created.


5、格式化lv

[root@BG-IAP ~]# mkfs.xfs /dev/datavg/lv1 
meta-data=/dev/datavg/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


6、挂载lv

[root@BG-IAP ~]# mkdir /mnt/data
[root@BG-IAP ~]# mount /dev/datavg/lv1 /mnt/data/


7、创建快照
      快照其实就是原数据的另一个访问路径,就是指向原数据的指针。快照卷的大小跟原卷数据的该变量和保存快照的时间有关。快照只能在本分区内有效。因为快照类似于inode,不能指向本分区之外的其他分区数据
       -s 跟上需要进行快照的lv 必选参数
       -n 指定快照卷的名称 必选项
       -L 指定快照卷的大小 -l(L) 指定快照卷的LE数量 必选参数
       -p 指定快照卷的读写权限 r|rw可选参数

[root@BG-IAP ~]# lvcreate -L 1G -n lv1_snapshot1 -p r -s /dev/datavg/lv1
Logical volume "lv1_snapshot1" created.
[root@BG-IAP ~]# mount /dev/datavg/lv1_snapshot1 /mnt/data_data/
mount: /dev/mapper/datavg-lv1_snapshot1 写保护,将以只读方式挂载
mount: 文件系统类型错误、选项错误、/dev/mapper/datavg-lv1_snapshot1 上有坏超级块、缺少代码页或助手程序,或其他错误有些情况下在 syslog 中可以找到一些有用信息- 请尝试dmesg | tail  这样的命令看看。
[root@BG-IAP ~]# umount /mnt/data_data/
[root@BG-IAP ~]# mount /dev/datavg/lv1_snapshot1 /mnt/data_data/
mount: /dev/mapper/datavg-lv1_snapshot1 写保护,将以只读方式挂载


注意:同一时间,原lv和快照只能有一个挂载
            快照建立的关键命令是lvcreate加上-s的参数。
             而且如果要更新快照内容只需将其卸载并删除卷再从新建立即可。

8、快照回滚恢复
      原来的origin_lv可以用lvconvert加上–merge参数恢复到做snapshot的状态:

[root@BG-IAP ~]# lvconvert --merge /dev/datavg/lv1_snapshot1 Delaying merge since origin is open.Merging of snapshot datavg/lv1_snapshot1 will occur on next activation of datavg/lv1.
[root@BG-IAP ~]# lvsLV                                             VG                                        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot                                           centos_cloud1                             -wi-ao----  3.63t                                                    swap                                           centos_cloud1                             -wi-ao----  4.00g                                                    osd-block-aa83d76d-71d9-4290-8923-f5aa517bec1a ceph-8fb0dfd7-1515-4935-87ad-ff690d64c9ab -wi-ao---- <3.64t                                                    osd-block-f598936a-a49c-4fc7-bf2b-ff0072b92a04 ceph-a5499ea8-fdfa-4737-8894-0342ab076cfc -wi-ao---- <3.64t                                                    lv1                                            datavg                                    Owi-aos---  1.00g     

      恢复之后,lv_snapshot1会被删除,使用lvs命令看不到。
      [root@BG-IAP ~]# mount /dev/datavg/lv1_snapshot1 /mnt/data_data/
      mount: /dev/mapper/datavg-lv1_snapshot1 写保护,将以只读方式挂载 
  
注意:用快照对逻辑卷进行恢复,注意恢复之前需要先将对应的逻辑卷卸载。恢复之后可以看到,原有的快照消失,即LVM的快照是一次性的。

[root@BG-IAP ~]# lvcreate -L 1G -n lv3 /dev/datavg
WARNING: xfs signature detected on /dev/datavg/lv3 at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/datavg/lv3.Logical volume "lv3" created.
[root@BG-IAP ~]# mkfs.xfs -f /dev/datavg/lv3 
meta-data=/dev/datavg/lv3        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@BG-IAP ~]# mount /dev/datavg/lv3 /mnt/data
[root@BG-IAP ~]# echo 'test3' /mnt/data/test3
test3 /mnt/data/test3
[root@BG-IAP ~]# echo 'test3'> /mnt/data/test3
[root@BG-IAP ~]# umount /mnt/data
[root@BG-IAP ~]# lvcreate -L 1G -n lv3_snap -s /dev/datavg/lv3Logical volume "lv3_snap" created.
[root@BG-IAP ~]# mount /dev/datavg/lv3 /mnt/data
[root@BG-IAP ~]# cat /mnt/data/test3 
test3
[root@BG-IAP ~]# rm -rf /mnt/data/test3 
[root@BG-IAP ~]# umount /mnt/data
[root@BG-IAP ~]# lvconvert --merge /dev/datavg/lv3_snap Merging of volume datavg/lv3_snap started.datavg/lv3: Merged: 100.00%
[root@BG-IAP ~]# mount /dev/datavg/lv3 /mnt/data
[root@BG-IAP ~]# cat /mnt/data/test3 
test3


9、回滚成功后再次创建快照成功。

[root@BG-IAP ~]# lvcreate -L 1G -n lv3_snap1 -s /dev/datavg/lv3
Logical volume "lv3_snap1" created.
不卸载lv,执行快照恢复   
[root@BG-IAP ~]# df
文件系统                            1K-块      已用       可用 已用% 挂载点
/dev/mapper/centos_cloud1-root 3899866616 108007704 3791858912    3% /
devtmpfs                         57639876         0   57639876    0% /dev
tmpfs                            57656852        88   57656764    1% /dev/shm
tmpfs                            57656852     19704   57637148    1% /run
/dev/mapper/datavg-lv3            1038336     32948    1005388    4% /mnt/data
[root@BG-IAP ~]# lvconvert --merge /dev/datavg/lv3_snap1 Delaying merge since origin is open.Merging of snapshot datavg/lv3_snap1 will occur on next activation of datavg/lv3.
[root@BG-IAP ~]# lvcreate -L 1G -n lv3_snap2 -s /dev/datavg/lv3Snapshots of an origin that has a merging snapshot are not supported.


注:由于没有卸载原生逻辑卷,就开始使用快照回滚,导致回滚失败,且造成原生逻辑卷回滚后就不能再创建快照。
错误提示:Snapshots of an origin that has a merging snapshot is not supported


10、将/dev/sdf3从data1vg挪动到datavg当中

[root@ZS-ISP ~]# vgsplit data1vg datavg /dev/sdf3
Existing volume group "datavg" successfully split from "data1vg"

11、创建LE数为2的lv

[root@ZS-ISP ~]# lvcreate -L 10G -i 2 -n lv22 /dev/datavgUsing default stripesize 64.00 KiB.Logical volume "lv22" created.
[root@ZS-ISP ~]# lsblk /dev/sdf
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdf                       8:80   0  3.7T  0 disk 
├─sdf1                    8:81   0  100G  0 part 
│ ├─datavg-lv5-real     253:5    0    2G  0 lvm  
│ │ ├─datavg-lv5        253:4    0    2G  0 lvm  /mnt/data
│ │ └─datavg-lv5_snap   253:7    0    2G  0 lvm  
│ ├─datavg-lv5_snap-cow 253:6    0    1G  0 lvm  
│ │ └─datavg-lv5_snap   253:7    0    2G  0 lvm  
│ └─datavg-lv22         253:8    0   10G  0 lvm  
├─sdf2                    8:82   0  100G  0 part 
│ └─datavg-lv22         253:8    0   10G  0 lvm  
├─sdf3                    8:83   0  100G  0 part 
├─sdf4                    8:84   0  100G  0 part 
└─sdf5                    8:85   0  100G  0 part 

12、指定在vg(datavg)上使用在pv(sdf2)创建lv(lvvv)

[root@ZS-ISP ~]# lvcreate -L 10G -n lvvv datavg /dev/sdf2Logical volume "lvvv" created.
[root@ZS-ISP ~]# lsblk
NAME                                                                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                                  8:0    0  3.7T  0 disk 
├─sda1                                                                               8:1    0    1M  0 part 
├─sda2                                                                               8:2    0    1G  0 part /boot
└─sda3                                                                               8:3    0  3.7T  0 part ├─centos_cloud1-root                                                             253:0    0  3.6T  0 lvm  /└─centos_cloud1-swap                                                             253:1    0    4G  0 lvm  [SWAP]
sdf                                                                                  8:80   0  3.7T  0 disk 
├─sdf1                                                                               8:81   0  100G  0 part 
│ ├─datavg-lv5-real                                                                253:5    0    2G  0 lvm  
│ │ ├─datavg-lv5                                                                   253:4    0    2G  0 lvm  
│ │ └─datavg-lv5_snap                                                              253:7    0    2G  0 lvm  
│ ├─datavg-lv5_snap-cow                                                            253:6    0    1G  0 lvm  
│ │ └─datavg-lv5_snap                                                              253:7    0    2G  0 lvm  
│ ├─datavg-lv22                                                                    253:8    0   10G  0 lvm  /mnt/data
│ └─datavg-lvv                                                                     253:9    0   10G  0 lvm  
├─sdf2                                                                               8:82   0  100G  0 part 
│ ├─datavg-lv22                                                                    253:8    0   10G  0 lvm  /mnt/data
│ └─datavg-lvvv                                                                    253:10   0   10G  0 lvm  
├─sdf3                                                                               8:83   0  100G  0 part 


13、指定在vg(datavg)上使用在pv(sdf3)对lv(lvvv)创建快照,即跨pv创建快照

[root@ZS-ISP ~]# lvcreate -L 1G -s -n lvvv_snap /dev/datavg/lvvv /dev/sdf3Logical volume "lvvv_snap" created.
[root@ZS-ISP ~]# lsblk
NAME                                                                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                                                                  8:0    0  3.7T  0 disk 
├─sda1                                                                               8:1    0    1M  0 part 
├─sda2                                                                               8:2    0    1G  0 part /boot
└─sda3                                                                               8:3    0  3.7T  0 part ├─centos_cloud1-root                                                             253:0    0  3.6T  0 lvm  /└─centos_cloud1-swap                                                             253:1    0    4G  0 lvm  [SWAP]
sdf                                                                                  8:80   0  3.7T  0 disk 
├─sdf1                                                                               8:81   0  100G  0 part 
│ ├─datavg-lv5-real                                                                253:5    0    2G  0 lvm  
│ │ ├─datavg-lv5                                                                   253:4    0    2G  0 lvm  
│ │ └─datavg-lv5_snap                                                              253:7    0    2G  0 lvm  
│ ├─datavg-lv5_snap-cow                                                            253:6    0    1G  0 lvm  
│ │ └─datavg-lv5_snap                                                              253:7    0    2G  0 lvm  
│ ├─datavg-lv22                                                                    253:8    0   10G  0 lvm  /mnt/data
│ └─datavg-lvv                                                                     253:9    0   10G  0 lvm  
├─sdf2                                                                               8:82   0  100G  0 part 
│ ├─datavg-lv22                                                                    253:8    0   10G  0 lvm  /mnt/data
│ └─datavg-lvvv-real                                                               253:11   0   10G  0 lvm  
│   ├─datavg-lvvv                                                                  253:10   0   10G  0 lvm  
│   └─datavg-lvvv_snap                                                             253:13   0   10G  0 lvm  
├─sdf3                                                                               8:83   0  100G  0 part 
│ └─datavg-lvvv_snap-cow                                                           253:12   0    1G  0 lvm  
│   └─datavg-lvvv_snap                                                             253:13   0   10G  0 lvm  

14、跨vg创建快照失败

[root@ZS-ISP ~]# lvcreate -L 1G -s -n lvvv_snap1 /dev/datavg/lvvv /dev/sdf4
Physical Volume "/dev/sdf4" not found in Volume Group "datavg".

注:能够在同一个vg中,跨pv创建快照,但是不能夸vg创建快照。

15、使用dd实现跨vg拷贝lv

(1)在datavg上创建lv1,格式化后并挂载,然后写入数据

[root@ZS-ISP ~]# lvcreate -L 100M -n lv1 /dev/datavg
WARNING: xfs signature detected on /dev/datavg/lv1 at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/datavg/lv1.Logical volume "lv1" created.
[root@ZS-ISP ~]# mkfs.xfs /dev/mapper/datavg-lv1
meta-data=/dev/mapper/datavg-lv1 isize=512    agcount=4, agsize=6400 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=25600, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@ZS-ISP ~]# mount /dev/mapper/datavg-lv1 /mnt/lv1
[root@ZS-ISP ~]# echo 'test'>/mnt/lv1/test
[root@ZS-ISP ~]# umount /mnt/lv1

(2)对lv1创建快照

[root@ZS-ISP ~]# lvcreate -s -L 100M -n lv1_snap /dev/datavg/lv1Logical volume "lv1_snap" created.

(3)对使用dd命令对快照生成img文件

[root@ZS-ISP ~]# dd if=/dev/mapper/datavg-lv1_snap of=/tmp/lv1_snap.img
记录了204800+0 的读入
记录了204800+0 的写出
104857600字节(105 MB)已复制,0.745093 秒,141 MB/秒
[root@ZS-ISP ~]# 


(4)在data1vg上创建lv2,格式化

[root@ZS-ISP ~]# lvcreate -L 100M -n lv2 /dev/data1vg
WARNING: xfs signature detected on /dev/data1vg/lv2 at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/data1vg/lv2.Logical volume "lv2" created.
[root@ZS-ISP ~]# mkfs.xfs /dev/mapper/data1vg-lv2 
meta-data=/dev/mapper/data1vg-lv2 isize=512    agcount=4, agsize=6400 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=25600, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

(5)使用dd命令把img文件dd到lv2上

[root@ZS-ISP ~]# dd if=/tmp/lv1_snap.img of=/dev/mapper/data1vg-lv2
记录了204800+0 的读入
记录了204800+0 的写出
104857600字节(105 MB)已复制,2.62914 秒,39.9 MB/秒
[root@ZS-ISP ~]# mount /dev/mapper/data1vg-lv2 /mnt/lv2
[root@ZS-ISP ~]# df /mnt/lv2
文件系统                1K-块  已用  可用 已用% 挂载点
/dev/mapper/data1vg-lv2 98980  5300 93680    6% /mnt/lv2
[root@ZS-ISP ~]# cd /mnt/lv2
[root@ZS-ISP lv2]# ls
test
[root@ZS-ISP lv2]# cat test 
test


注意:使用dd命令可以实现跨vg,拷贝lv

这篇关于Linux之LVM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117841

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用