postgresql|数据库|LVM快照热备冷恢复数据库的思考

一,

LVM快照备份的意义

数据库备份一直是数据库运维工作中的重点,一个完备的备份不仅仅是仅有后悔药的功能,还可能有迁移数据库的作用。

那么,数据库备份系统我们需要的,也就是看重的是四个点,甚至更多的点

第一个是备份的范围准确,例如,物理备份数据库文件,但数据库运行的几十个G日志也跟着备份出来了,这无疑是增加了备份的负担,毕竟无效的数据,没谁愿意保存管理,

第二个是备份的速度,例如某个比较大的数据库,数据量达到几个T,利用SQL转储方式备份一两天才能完成,这无疑是错误的,毕竟,除了备份,我们还需要使用数据库,而转储可能会有锁表的情况发生,导致停库的时间不可计划,进而数据库部分或者全部不可使用。那么,调整备份策略,使用其它的工具提高备份的效率,无疑会减少停库锁表这样的风险了。

第三个是备份后的恢复还原操作的复杂性,例如,某个数据库我们顺利完成了备份,但恢复还原的操作非常复杂,有着各种的先后顺序,一步错就可能导致前功尽弃或者毁掉整个数据库,那么,无疑的,这种备份是失败的

第四个是备份后的恢复还原效率,例如,某种数据库备份后,由于数据库是非常庞大的,恢复还原还是需要十几个小时,甚至几天,这无疑是不可接受的备份还原,我们应该认为这是一种错误的备份恢复策略。

而lvm快照备份和还原系统是可以满足我们的备份效率的,还原效率可能是有待商榷的,毕竟lvm快照备份的根本底层是建立在操作系统的文件系统下,但,据我估计,还原只是取决于硬盘的读写速度而已了,因为,lvm快照基本是没有什么逻辑的,类似于dd命令,只是要求IO读写速度而已。

从备份范围来说,LVM快照基本是整分区备份,当然也就是全库备份,目前没有什么增量备份策略,需要注意到的是,lvm快照恢复是需要数据库停机,也就是冷恢复的,对于冷恢复方式比较介意的同学就不需要看下面的内容了(冷恢复,指的是恢复还原的时候,数据库完全停止,lvm快照的恢复方式决定了在恢复的时候必须要卸载源分区,数据库自然就停掉了)

下面将在VMware里模拟一个在虚拟机内运行的postgresql数据库,利用lvm快照备份和还原的例子

二,

lvm快照使用前的一些基本概念

1,什么是LVM

LVM是 Logical Volume Manager(逻辑卷管理)的简写,该技术使得动态管理磁盘成为一个可能

那么,何谓动态磁盘管理?

我们知道操作系统有运行和关闭两种状态,动态的意思就是操作系统一直是运行状态,在对磁盘做扩缩容等等调整的时候,不会影响操作系统的运行,也不影响硬盘内的每个分区的数据,反之,静态的磁盘管理就是跑到机箱跟前,关闭操作系统,然后把某个硬盘拿掉,或者直接在操作系统内把某个分区格式化掉,数据清理掉,这无疑的操作效率是低效的,不安全的。

2,

根分区和其它分区的概念

这个不需要我多说了,Linux的一切都要从 /  也就是根开始,一个硬盘可以有四个主分区以及N个逻辑分区,而根分区毫无疑问是不可以格式化的,而其它分区,比如主分区,逻辑分区是可以格式化的,如果这些其它分区内的数据你确定不需要的时候。因此,有的时候,硬件运维工程师会直接一个硬盘只划分一个根分区,这个时候安装的Linux是仍然可以运行的。简单的理解根分区就好像Windows的C盘,也就是当你打开了一个Windows的电脑,虽然你可以格式化C盘,但无疑的,操作系统会报废(Windows低版本好像是可以)。

3,

新磁盘的挂载方式

有四种挂载方式,第一种,loop整盘挂载,也就是直接按自己的需求格式化后,创建一个挂载点挂载,这种方式是可以随时取消挂载的。卸载的时候,新磁盘的内容不会丢失,但分区无法动态扩展

第二种,新添加的磁盘作为根节点的扩容,这种方式无法取消挂载,新磁盘必须是lvm格式的,根节点同样是lvm格式的,可以在添加新磁盘扩展,但若其中一个硬盘损坏,整个服务器将不可用。

第三种,新添加的磁盘单独lvm,不作为任何其它的lvm扩容,这种方式是可以随时取消挂载的,前提是卸载相关的pv,vg,lv,卸载的时候,新磁盘的内容必定会丢失,分区可以动态扩展,新磁盘损坏不影响服务器运行

第四种,新添加的磁盘通过fdisk或者parted,划分普通分区,然后根据需要格式化为特定文件系统,例如,xfs,ext4等等,然后按自己需求挂载到指定挂载点。新磁盘的内容不会丢失,但分区无法动态扩展

那么,本文将只讨论第二种和第三种lvm形式的磁盘扩展管理

三,

新添加的磁盘作为根节点的扩容示例

计划使用VMware虚拟机进行演示,该VMware虚拟机最开始是是一个磁盘,lvm分区格式,后续添加一个新磁盘,新磁盘给根分区提供扩容空间。

两个磁盘,一个是100G,新磁盘是20G根分区扩容前:

[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  4.2G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 

可以看到,sdb没有任何使用,sda有20G没有使用,这个没有使用的20G我们暂且不管,主要使用sdb这个新增磁盘以lvm格式加入到sda2也就是根节点

根节点扩容,以sdb这个新磁盘为扩展源:

  • A,先使用fdisk工具,将sdb磁盘转化为lvm格式

[root@centos5 ~]# 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 0xd6585e20.Command (m for help): pDisk /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: 0xd6585e20Device Boot      Start         End      Blocks   Id  SystemCommand (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): 
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is setCommand (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
  • B,查看磁盘状态,发现sdb1还没有加入centos-root:

[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 
sr0              11:0    1  4.2G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
  • C,将sdb1加入centos-root :

####注:先查询现有的vg是哪些,确定库容对象,vgs命令查询出来,扩容对象是centos,该vg现在只有一个pv

####注:第二个命令可以理解为组合命令,创建PV的同时扩容VG

[root@centos5 ~]# vgsVG     #PV #LV #SN Attr   VSize  VFreecentos   1   1   0 wz--n- 80.00g    0 [root@centos5 ~]# vgextend centos /dev/sdb1Physical volume "/dev/sdb1" successfully created.Volume group "centos" successfully extended
  • D,观察磁盘状态,可以看到名为centos的已扩展了一个PV,新磁盘sdb1也可以看到了

[root@centos5 ~]# vgsVG     #PV #LV #SN Attr   VSize    VFreecentos   2   1   0 wz--n- <100.00g    0 [root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 
sr0              11:0    1  4.2G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
/dev/sdb1: UUID="z2Rght-nYfZ-FxXe-Vc7H-WGoY-Raxk-JzTNa0" TYPE="LVM2_member" 
  • E开始扩容根分区:

####注:我这里偷懒了,懒得算什么pe的,直接让命令告诉我多少个pe,可以看到是5119个,一个pe是4M,第二个命令输出扩容结果,可以看到扩容成功

[root@centos5 ~]# lvextend -L +20G /dev/centos/root Insufficient free space: 5120 extents needed, but only 5119 available
[root@centos5 ~]# lvextend -l +5119  /dev/centos/root Size of logical volume centos/root changed from 80.00 GiB (20480 extents) to <100.00 GiB (25599 extents).Logical volume centos/root successfully resized.
  •  F,保存更改,同步磁盘更改到df命令:

####注,上面的blkid命令可以看到根分区是xfs格式的,因此,同步命令使用的是xfs_growfs 

[root@centos5 ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=5242880 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=20971520, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=10240, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 20971520 to 26213376
  •  G,检查是否扩容成功:

#####注,可以看到,扩容完美完成,一切都没有问题

[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0  100G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part └─centos-root 253:0    0  100G  0 lvm  /
sr0              11:0    1  4.2G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
/dev/sdb1: UUID="z2Rght-nYfZ-FxXe-Vc7H-WGoY-Raxk-JzTNa0" TYPE="LVM2_member" 
[root@centos5 ~]# df -ah
Filesystem               Size  Used Avail Use% Mounted on
sysfs                       0     0     0    - /sys
proc                        0     0     0    - /proc
devtmpfs                 2.0G     0  2.0G   0% /dev
securityfs                  0     0     0    - /sys/kernel/security
tmpfs                    2.0G     0  2.0G   0% /dev/shm
devpts                      0     0     0    - /dev/pts
tmpfs                    2.0G  9.0M  2.0G   1% /run
tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
cgroup                      0     0     0    - /sys/fs/cgroup/systemd
pstore                      0     0     0    - /sys/fs/pstore
cgroup                      0     0     0    - /sys/fs/cgroup/memory
cgroup                      0     0     0    - /sys/fs/cgroup/net_cls,net_prio
cgroup                      0     0     0    - /sys/fs/cgroup/hugetlb
cgroup                      0     0     0    - /sys/fs/cgroup/pids
cgroup                      0     0     0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                      0     0     0    - /sys/fs/cgroup/blkio
cgroup                      0     0     0    - /sys/fs/cgroup/perf_event
cgroup                      0     0     0    - /sys/fs/cgroup/devices
cgroup                      0     0     0    - /sys/fs/cgroup/freezer
cgroup                      0     0     0    - /sys/fs/cgroup/cpuset
configfs                    0     0     0    - /sys/kernel/config
/dev/mapper/centos-root  100G  1.4G   99G   2% /
systemd-1                   -     -     -    - /proc/sys/fs/binfmt_misc
mqueue                      0     0     0    - /dev/mqueue
hugetlbfs                   0     0     0    - /dev/hugepages
debugfs                     0     0     0    - /sys/kernel/debug
/dev/sr0                 4.3G  4.3G     0 100% /mnt
/dev/sda1               1014M  136M  879M  14% /boot
tmpfs                    396M     0  396M   0% /run/user/0
binfmt_misc                 0     0     0    - /proc/sys/fs/binfmt_misc

扩容后的总结

  • 优点:根分区可以持续扩展,当容量快耗尽的时候,可以增加新硬盘,按上面的方法继续的动态扩容
  • 缺点:无法创建lvm快照,因为lvm快照是对根分区快照,无法使用,强行使用的话,必须到服务器跟前进入应急模式后再使用快照,非常的危险,麻烦,其次,如果sdb磁盘损坏,无法卸载此磁盘,因为是根分区扩展形式,强行卸载的话,整个服务器将无法开机,总之,我们需要考虑新加磁盘的质量,例如,某个服务器根节点扩容了3 次,每次使用一个新磁盘,如果期间某个磁盘损坏,整个服务器的数据都将损坏

下面模拟MBR分区信息被覆盖导致磁盘故障的情形

###注:抹去sdb1的MBR信息

[root@centos5 ~]# dd if=/dev/zero of=/dev/sdb1 bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.000108516 s, 4.1 MB/s

此时,服务器已经无法读写数据,下面模拟的是写数据,可以看到写了334B数据就停止了,当然,重启服务器自然是进入紧急救援模式了,如何修复MBR本文就不在此讨论了 

[root@centos5 /]# dd if=/dev/random of=/testfile bs=100M count=200
dd: warning: partial read (93 bytes); suggest iflag=fullblock
^X^C0+41 records in
0+41 records out
334 bytes (334 B) copied, 1651.13 s, 0.0 kB/s
[root@centos5 /]# ls -al testfile 
-rw-r--r-- 1 root root 334 Dec 23 06:55 testfile

四,

第三种挂载方式的演示

挂载前的磁盘信息:
[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  4.4G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
新磁盘sdb利用fdisk转化成lvm格式:
[root@centos5 ~]# 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 0x2cb32d47.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): 
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is setCommand (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
转化后新增的sdb1信息:

可以看到sdb1转化成了LVM2_member了

[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 
sr0              11:0    1  4.4G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
/dev/sdb1: UUID="uj3eg7-RN9e-u7Ev-OQqz-1F5b-AC5H-5Q4Dax" TYPE="LVM2_member" 
创建一个新的vg,名字就叫vg 
[root@centos5 ~]# vgcreate vg /dev/sdb1Physical volume "/dev/sdb1" successfully created.Volume group "vg" successfully created
创建一个全新的lv,名字叫testlv,注意,这里只使用sdb1的10G,最后一个vg 是上面vgs查询出来的名字 
[root@centos5 ~]# vgsVG     #PV #LV #SN Attr   VSize   VFree  centos   1   1   0 wz--n-  80.00g      0 vg       1   0   0 wz--n- <20.00g <20.00g[root@centos5 ~]# lvcreate -n testlv -L 10G vgLogical volume "testlv" created.
lv创建完成后,查看sdb1的磁盘信息 
[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part └─vg-testlv   253:1    0   10G  0 lvm  
sr0              11:0    1  4.4G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
/dev/sdb1: UUID="uj3eg7-RN9e-u7Ev-OQqz-1F5b-AC5H-5Q4Dax" TYPE="LVM2_member" 
格式化lv以准备使用,这里使用的是xfs文件系统 
[root@centos5 ~]# mkfs.xfs /dev/vg
vg/          vga_arbiter  
[root@centos5 ~]# mkfs.xfs /dev/vg/testlv 
meta-data=/dev/vg/testlv         isize=512    agcount=4, agsize=655360 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, 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
创建挂载点,手动挂载,挂载完毕后查看磁盘信息,blkid可以看到新增了 /dev/mapper/vg-testlv,文件系统格式为xfs
[root@centos5 ~]# mkdir /data
[root@centos5 ~]# mount -t xfs /dev/vg/testlv /data/
[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part └─vg-testlv   253:1    0   10G  0 lvm  /data
sr0              11:0    1  4.4G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
/dev/sdb1: UUID="uj3eg7-RN9e-u7Ev-OQqz-1F5b-AC5H-5Q4Dax" TYPE="LVM2_member" 
/dev/mapper/vg-testlv: UUID="a9506987-a65d-40a7-821a-638f3b3e2a22" TYPE="xfs" 
df命令可以看到挂载信息(最后一行),是符合我们的预期的,vg空余了10G,下面在从此vg里划分5G出来,扩展/dev/vg/testlv 这个lv,如果vgs查询,看不到剩余,将不可以库容
[root@centos5 ~]# df -ah
Filesystem               Size  Used Avail Use% Mounted on
sysfs                       0     0     0    - /sys
proc                        0     0     0    - /proc
devtmpfs                 2.0G     0  2.0G   0% /dev
securityfs                  0     0     0    - /sys/kernel/security
tmpfs                    2.0G     0  2.0G   0% /dev/shm
devpts                      0     0     0    - /dev/pts
tmpfs                    2.0G  9.0M  2.0G   1% /run
tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
cgroup                      0     0     0    - /sys/fs/cgroup/systemd
pstore                      0     0     0    - /sys/fs/pstore
cgroup                      0     0     0    - /sys/fs/cgroup/memory
cgroup                      0     0     0    - /sys/fs/cgroup/hugetlb
cgroup                      0     0     0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                      0     0     0    - /sys/fs/cgroup/pids
cgroup                      0     0     0    - /sys/fs/cgroup/cpuset
cgroup                      0     0     0    - /sys/fs/cgroup/net_cls,net_prio
cgroup                      0     0     0    - /sys/fs/cgroup/devices
cgroup                      0     0     0    - /sys/fs/cgroup/freezer
cgroup                      0     0     0    - /sys/fs/cgroup/blkio
cgroup                      0     0     0    - /sys/fs/cgroup/perf_event
configfs                    0     0     0    - /sys/kernel/config
/dev/mapper/centos-root   80G  1.4G   79G   2% /
systemd-1                   0     0     0    - /proc/sys/fs/binfmt_misc
mqueue                      0     0     0    - /dev/mqueue
debugfs                     0     0     0    - /sys/kernel/debug
hugetlbfs                   0     0     0    - /dev/hugepages
/dev/sr0                 4.4G  4.4G     0 100% /mnt
/dev/sda1               1014M  136M  879M  14% /boot
tmpfs                    396M     0  396M   0% /run/user/0
/dev/mapper/vg-testlv     10G   33M   10G   1% /data
[root@centos5 ~]# vgsVG     #PV #LV #SN Attr   VSize   VFree  centos   1   1   0 wz--n-  80.00g      0 vg       1   1   0 wz--n- <20.00g <10.00g
 扩容/dev/vg/testlv 并同步信息到df命令,最终查看sdb1的磁盘信息
[root@centos5 ~]# lvextend -L +5G /dev/vg/testlv Size of logical volume vg/testlv changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).Logical volume vg/testlv successfully resized.
[root@centos5 ~]# xfs_growfs /dev/vg/testlv 
meta-data=/dev/mapper/vg-testlv  isize=512    agcount=4, agsize=655360 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621440, 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 2621440 to 3932160
[root@centos5 ~]# df -ah
Filesystem               Size  Used Avail Use% Mounted on
sysfs                       0     0     0    - /sys
proc                        0     0     0    - /proc
devtmpfs                 2.0G     0  2.0G   0% /dev
securityfs                  0     0     0    - /sys/kernel/security
tmpfs                    2.0G     0  2.0G   0% /dev/shm
devpts                      0     0     0    - /dev/pts
tmpfs                    2.0G  9.0M  2.0G   1% /run
tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
cgroup                      0     0     0    - /sys/fs/cgroup/systemd
pstore                      0     0     0    - /sys/fs/pstore
cgroup                      0     0     0    - /sys/fs/cgroup/memory
cgroup                      0     0     0    - /sys/fs/cgroup/hugetlb
cgroup                      0     0     0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                      0     0     0    - /sys/fs/cgroup/pids
cgroup                      0     0     0    - /sys/fs/cgroup/cpuset
cgroup                      0     0     0    - /sys/fs/cgroup/net_cls,net_prio
cgroup                      0     0     0    - /sys/fs/cgroup/devices
cgroup                      0     0     0    - /sys/fs/cgroup/freezer
cgroup                      0     0     0    - /sys/fs/cgroup/blkio
cgroup                      0     0     0    - /sys/fs/cgroup/perf_event
configfs                    0     0     0    - /sys/kernel/config
/dev/mapper/centos-root   80G  1.4G   79G   2% /
systemd-1                   -     -     -    - /proc/sys/fs/binfmt_misc
mqueue                      0     0     0    - /dev/mqueue
debugfs                     0     0     0    - /sys/kernel/debug
hugetlbfs                   0     0     0    - /dev/hugepages
/dev/sr0                 4.4G  4.4G     0 100% /mnt
/dev/sda1               1014M  136M  879M  14% /boot
tmpfs                    396M     0  396M   0% /run/user/0
/dev/mapper/vg-testlv     15G   33M   15G   1% /data
binfmt_misc                 0     0     0    - /proc/sys/fs/binfmt_misc
[root@centos5 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   80G  0 part └─centos-root 253:0    0   80G  0 lvm  /
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part └─vg-testlv   253:1    0   15G  0 lvm  /data
sr0              11:0    1  4.4G  0 rom  /mnt
[root@centos5 ~]# blkid
/dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="326cd1a2-713a-4a37-85d9-8f1606083297" TYPE="xfs" 
/dev/sda2: UUID="RoyB4E-tuJx-OSAn-uGvH-YOiH-rerF-51wkyI" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="81ad8aed-bf72-4bd9-b9f4-8743e1dc074d" TYPE="xfs" 
/dev/sdb1: UUID="uj3eg7-RN9e-u7Ev-OQqz-1F5b-AC5H-5Q4Dax" TYPE="LVM2_member" 
/dev/mapper/vg-testlv: UUID="a9506987-a65d-40a7-821a-638f3b3e2a22" TYPE="xfs" 

小结:

此种方式可以看到是vgcreate和lvcreate,sdb磁盘如果损坏,并不会影响服务器整体的运行,卸载掉 /data 这个挂载点就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294775.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt WebAssembly开发环境配置

目录 前言1、下载Emscripten SDK2、 安装3、环境变量配置4、QtCreator配置5、运行示例程序总结 前言 本文主要介绍 Qt WebAssembly 开发环境的配置。Qt for Webassembly 可以使Qt应用程序在Web上运行。WebAssembly&#xff08;简称Wasm&#xff09;是一种能够在虚拟机中执行的…

<HarmonyOS第一课>运行Hello World

下载与安装DevEco Studio 在HarmonyOS应用开发学习之前&#xff0c;需要进行一些准备工作&#xff0c;首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 进入DevEco Studio下载官网&#xff0c;单击“立即下载”进入下载页面。 DevEco Studio提供了Windows版本和…

[SWPUCTF 2021 新生赛]jicao

首先打开环境 代码审计&#xff0c;他这儿需要进行GET传参和POST传参&#xff0c;需要进行POST请求 变量idwllmNB&#xff0c;进行GET请求变量json里需要含参数x以及jsonwllm 构造 得到flag

Maven简介

1 Maven介绍 1.1 官网地址 Maven 1.2 Maven是什么 Maven是一种项目管理、依赖管理、项目构建的工具&#xff0c;可以进行自动化构建、测试、打包和发布项目。 依赖管理 随着项目引入jar包的增多&#xff0c;我们需要对其进行管理&#xff0c;包括jar包之间的版本依赖管理&a…

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制 前言0. 基础Qt/PyQt5介绍/关联Qt的优缺点&#xff08;为什么要用qt来做界面&#xff09;Qt 的核心机制请简要介绍一下Qt中的主窗口&#xff08;MainWindow&#xff09;类&#xff0c;它有哪些重要的函数和成员变量&#xff…

qt项目-《图像标注软件》源码阅读笔记-类图

目录 1. 开源项目链接 2. 项目界面 3. 项目类图 3.1 形状的绘制及形状的存储 3.2 主窗口中心组件的界面管理 3.3 Command负责实现撤销和重做功能 3.4 其他类 3.5 枚举 3.5.1 Status 主窗口的状态变量 3.5.2 Mode 主窗口模式状态变量 3.5.3 shapeStatus 中心组件状态…

基于JAVA的大病保险管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大病保险管理2.4 大病登记管理2.5 保险审核管理 三、系统详细设计3.1 系统整体配置功能设计3.2 大病人员模块设计3.3 大病保险模块设计3.4 大病登记模块设计3.5 保险审核模块设计 四、…

go语言初体验1--使用go install

当安装后go语言后。 尝试编写go程序。 当使用 go install 命令&#xff0c;报错。 go: go install requires a version when current directory is not in a moduleTry go install jvmgo\ch01latest to install the latest version通过查找资料。 用命令&#xff1a; go env …

用23种设计模式打造一个cocos creator的游戏框架----(二十二)原型模式

1、模式标准 模式名称&#xff1a;原型模式 模式分类&#xff1a;创建型 模式意图&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过复制这些原型创建新的对象 结构图&#xff1a; 适用于&#xff1a; 1、当一个系统应该独立于它的产品创建、构成和表示时 2、…

什么是动态代理?

目录 一、为什么需要代理&#xff1f; 二、代理长什么样&#xff1f; 三、Java通过什么来保证代理的样子&#xff1f; 四、动态代理实现案例 五、动态代理在SpringBoot中的应用 导入依赖 数据库表设计 OperateLogEntity实体类 OperateLog枚举 RecordLog注解 上下文相…

基于Springboot的酒店管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的酒店管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

C#上位机与欧姆龙PLC的通信05---- HostLink协议

1、介绍 Hostlink协议是欧姆龙PLC与上位机链接的公开协议。上位机通过发送Hostlink命令&#xff0c;可以对PLC进行I/O读写、可以对PLC进行I/O读写、改变操作模式、强制置位/复位等操作。由于是公开协议&#xff0c;即便是非欧姆龙的上位设备&#xff08;软件&#xff09;&…