实现逻辑卷lvm

如果没有命令安装如下命令即可

[root@CentOS-8 ~]# yum install lvm2 -y

临时的扫描磁盘

[root@localhost ~]# alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

永久的扫描磁盘方法一:

[root@localhost ~]# vim /etc/profile.d/nev.sh

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

[root@localhost ~]# . /etc/profile.d/nev.sh
[root@localhost ~]# scandisk

永久的扫描磁盘方法二:

[root@localhost ~]# echo "alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'" > /etc/profile.d/nev.sh

[root@localhost ~]# . /etc/profile.d/nev.sh
[root@localhost ~]# scandisk
开始分区
[root@localhost ~]# fdisk /dev/sdb

Command (m for help): m

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
   
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +3G

Created a new partition 1 of type 'Linux' and of size 3 GiB.
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 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
Disklabel type: dos
Disk identifier: 0x838642fa

Device     Boot Start     End Sectors Size Id Type
/dev/sdb1        2048 6293503 6291456   3G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

分成逻辑卷lvm格式

[root@localhost ~]# fdisk /dev/sdb

Command (m for help): m
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L
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: 10 GiB, 10737418240 bytes, 20971520 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
Disklabel type: dos
Disk identifier: 0x838642fa

Device     Boot Start     End Sectors Size Id Type
/dev/sdb1        2048 6293503 6291456   3G 8e Linux LVM

创建成文件系统

[root@localhost ~]# lsblk -f
NAME                  FSTYPE      LABEL                      UUID                                   MOUNTPOINT
sda                                                                                                 
├─sda1                ext4                                   232316f3-6dff-487a-9fae-af211542097b   /boot
sdb                                                                                                 
├─sdb1                                                                                              
└─sdb2 

[root@localhost ~]# mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkfs.ext4 /dev/sdb2

  └─cl-swap           swap                                   17c36cec-99e4-413e-bc81-4bbce82a3f2d   [SWAP]
sdb                                                                                                 
├─sdb1                ext4                                   82c742eb-cdfa-4db9-a497-e31ad5929c3d   
└─sdb2                ext4                                   b701e10a-15b9-4daa-9d39-ca7ff8038ece 

注意:创建文件系统,可以一起创建mkfs.ext4 /dev/sdb{1,2},如果这样执行会报错,需要分开执行创建

创建逻辑卷lvm

显示pv信息

pvs:简要pv信息显示
pvdisplay

创建pv

[root@localhost ~]# pvcreate /dev/sdb2
WARNING: ext4 signature detected on /dev/sdb2 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb2.
  Physical volume "/dev/sdb2" successfully created.

[root@localhost ~]# pvs
 /dev/sdb2  vg0 lvm2 a--  <6.00g <6.00g

为卷组分配物理卷vg

[root@localhost ~]# vgcreate vg0 /dev/sdb2
  Volume group "vg0" successfully created

[root@localhost ~]# vgs
  vg0   1   0   0 wz--n- <6.00g <6.00g

从卷组创建逻辑卷lv

[root@localhost ~]# lvcreate -L 500M -n mydata vg0
  Logical volume "mydata" created.

[root@localhost ~]# lvs
  mydata vg0 -wi-a----- 500.00m

创建需要的挂载目录,并挂载

[root@localhost ~]# mkdir /mnt/data -p

[root@localhost ~]# mkfs.ext4 /dev/vg0/mydata 
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: 784a4d01-d243-4350-8a0e-92d06a7d9b45
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

[root@localhost ~]# mount /dev/vg0/mydata /mnt/data/
lvm在线扩容逻辑卷
把剩余的磁盘空间100%全部加进去
[root@localhost ~]# lvextend -l +100%free /dev/vg0/mydata 
  Size of logical volume vg0/mydata changed from 500.00 MiB (125 extents) to <6.00 GiB (1535 extents).
  Logical volume vg0/mydata successfully resized.
  
#针对ext 系列
[root@localhost ~]# resize2fs /dev/vg0/mydata 
resize2fs 1.44.6 (5-Mar-2019)
Filesystem at /dev/vg0/mydata is mounted on /mnt/data; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 48
The filesystem on /dev/vg0/mydata is now 6287360 (1k) blocks long.

#针对xfs
[root@localhost ~]# mkfs.xfs /dev/vg2/logs 
meta-data=/dev/vg2/logs          isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=524288, 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 ~]# xfs_growfs /dev/vg2/logs

缩减逻辑卷lvm

注意:缩减有数据损坏的风险,建议先备份再缩减,xfs文件系统不支持缩减

# 取消挂载(xfs错误)
[root@localhost ~]# umount /mnt/data/

[root@localhost ~]# e2fsck -f /dev/vg2/logs
e2fsck 1.44.6 (5-Mar-2019)
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/vg2/logs

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

/dev/vg2/logs contains a xfs file system

# 取消挂载(ext)
[root@localhost ~]# umount /mnt/data

文件系统检查
[root@localhost ~]# e2fsck -f /dev/vg0/mydata 
e2fsck 1.44.6 (5-Mar-2019)
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/vg0/mydata: 16/1560576 files (0.0% non-contiguous), 208731/6287360 blocks

[root@localhost ~]# resize2fs /dev/vg0/mydata 2G
resize2fs 1.44.6 (5-Mar-2019)
The filesystem is already 6287360 (1k) blocks long.  Nothing to do!

[root@localhost ~]# lvreduce -L -2G /dev/vg0/mydata 
  WARNING: Reducing active logical volume to <5.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/mydata? [y/n]: y
  Size of logical volume vg0/mydata changed from <6.00 GiB (1535 extents) to <5.00 GiB (1279 extents).
  Logical volume vg0/mydata successfully resized.

重新挂载报错:
[root@localhost ~]# mount /dev/vg0/mydata /mnt/data/
mount: /mnt/data: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-mydata, missing codepage or helper program, or other error.
范例: 缩减XFS文件系统的逻辑卷
#因为XFS文件系统不支持缩减,可以用下面方式缩减

#先备份XFS文件系统数据

[root@localhost ~]# yum -y install xfsdump

[root@localhost ~]# xfsdump -f data.img /data

缩减逻辑卷
[root@localhost ~]# lvreduce -L 1G /dev/vg2/logs 
  WARNING: Reducing active and open logical volume to 1.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg2/logs? [y/n]: y
  Size of logical volume vg2/logs changed from 4.00 GiB (1024 extents) to 1.00 GiB (256 extents).
  Logical volume vg2/logs successfully resized.

[root@localhost ~]# umount /mnt/data/
[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             886M     0  886M   0% /dev
tmpfs                904M     0  904M   0% /dev/shm
tmpfs                904M  8.8M  895M   1% /run
tmpfs                904M     0  904M   0% /sys/fs/cgroup
/dev/mapper/cl-root   20G  1.8G   19G   9% /
/dev/mapper/cl-data   15G  140M   15G   1% /data
/dev/sda1            976M  138M  772M  16% /boot
tmpfs                181M     0  181M   0% /run/user/0
[root@localhost ~]# mkfs.xfs -f /dev/vg2/logs 
meta-data=/dev/vg2/logs          isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
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 ~]# xfsrestore -f data.img /data
删除逻辑卷
[root@localhost ~]# lsblk 
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   50G  0 disk 
├─sda1                  8:1    0    1G  0 part /boot
sdb                     8:16   0   10G  0 disk 
├─sdb1                  8:17   0    3G  0 part 
└─sdb2                  8:18   0    6G  0 part 
  └─vg0-mydata        253:5    0    4G  0 lvm  
sdc                     8:32   0    5G  0 disk 
└─sdc1                  8:33   0  4.5G  0 part 
  └─vg2-logs          253:8    0    1G  0 lvm  /mnt/data

1,删除lv

[root@localhost ~]# lvremove /dev/vg2/logs 
  Logical volume vg2/logs contains a filesystem in use.

2,删除vg

[root@localhost ~]# vgremove vg2
Do you really want to remove volume group "vg2" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume vg2/logs? [y/n]: y
  Logical volume "logs" successfully removed
  Volume group "vg2" successfully removed

3,删除pv

[root@localhost ~]# pvremove /dev/sdc1
  Labels on physical volume "/dev/sdc1" successfully wiped.
扩展知识
新添加一块硬盘制作成lvm逻辑卷并添加到原有的逻辑卷组达到扩容
[root@localhost ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 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
Disklabel type: dos
Disk identifier: 0x838642fa

Device     Boot   Start      End  Sectors Size Id Type
/dev/sdb1          2048  6293503  6291456   3G 8e Linux LVM
/dev/sdb2       6293504 18876415 12582912   6G 8e Linux LVM
[root@localhost ~]# lsblk 
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   50G  0 disk 
├─sda1                  8:1    0    1G  0 part /boot
sdb                     8:16   0   10G  0 disk 
├─sdb1                  8:17   0    3G  0 part 
│ └─vg1-sqldata       253:5    0    3G  0 lvm  
└─sdb2                  8:18   0    6G  0 part 
sdc                     8:32   0    5G  0 disk 
└─sdc1                  8:33   0  4.5G  0 part 

检查新添加的盘是否已经做成文件系统盘

[root@localhost ~]# lsblk -f
NAME                  FSTYPE      LABEL                      UUID                                   MOUNTPOINT
sda                                                                                                 
├─sda1                ext4                                   232316f3-6dff-487a-9fae-af211542097b   /boot
sdb                                                                                                 
├─sdb1                LVM2_member                            gmOwk3-h9Yu-Zegv-1obl-x2v8-nJfG-Z0qfHb 
│ └─vg1-sqldata                                                                                     
└─sdb2                ext4                                   a189e9a4-99b7-4c0a-89ff-e2909083cc24

创建成pv

[root@localhost ~]# pvcreate /dev/sdb2 
WARNING: ext4 signature detected on /dev/sdb2 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb2.
  Physical volume "/dev/sdb2" successfully created.

往vg 逻辑卷组添加扩容

[root@localhost ~]# vgextend vg1 /dev/sdb2 
  Volume group "vg1" successfully extended
检查
[root@localhost ~]# vgdisplay

添加到lv 逻辑卷中

[root@localhost ~]# lvextend -L +3G /dev/vg1/sqldata 
  Size of logical volume vg1/sqldata changed from <3.00 GiB (767 extents) to <6.00 GiB (1535 extents).
  Logical volume vg1/sqldata successfully resized.
(拆除)移走多余的逻辑卷

注意:移走的条件是,要移走的分区一定是要比其他的总和少或者等于

[root@localhost ~]# pvmove /dev/sdb1
  /dev/sdb1: Moved: 2.74%
  /dev/sdb1: Moved: 100.00%
  
[root@localhost ~]# vgreduce vg1 /dev/sdb1
  Removed "/dev/sdb1" from volume group "vg1"
  
[root@localhost ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
实现逻辑卷快照
[root@localhost data]# ls
fstab  issue  lost+found  passwd

[root@localhost ~]# lvcreate -L 100M -s -n data-snapshot /dev/vg1/sqldata 
  Logical volume "data-snapshot" created.

挂载

[root@localhost ~]# mount /dev/vg1/sqldata /mnt/data/

创建逻辑卷快照

[root@localhost ~]# lvcreate -L 100M -s -n data-snap -p  r /dev/vg1/sqldata 
  Logical volume "data-snap" created.

挂载快照,xfs注意要使用-o ro实现只读,访止快照被修改

mkdir -p /mnt/snap

挂载逻辑卷快照

做快照前
[root@localhost ~]# mount /dev/vg1/data-snap /mnt/snap/
[root@localhost ~]# cd /mnt/data/
[root@localhost data]# ls
f1.txt  f2.txt  f3.txt  f4.txt  f5.txt
[root@localhost data]# cd ..
[root@localhost mnt]# cd snap/
[root@localhost snap]# ls
f1.txt  f2.txt  f3.txt  f4.txt  f5.txt

做快照后,新加了两个文件
[root@localhost data]# ls
f1.txt  f2.txt  f3.txt  f4.txt  f5.txt  fstab  issue

恢复快照(快照是一次性的)

取消挂载
[root@localhost ~]# umount /mnt/snap/
[root@localhost ~]# umount /mnt/data/

[root@localhost ~]# lvconvert --merge /dev/vg1/data-snap 
  Merging of volume vg1/data-snap started.
  vg1/sqldata: Merged: 100.00%

检查文件

[root@localhost ~]# mount /dev/vg1/sqldata /mnt/data/
[root@localhost ~]# ls -l /mnt/data/
total 16
-rw-r--r--. 1 root root 5 Apr 13 16:34 f1.txt
-rw-r--r--. 1 root root 5 Apr 13 16:34 f2.txt
-rw-r--r--. 1 root root 7 Apr 13 16:34 f3.txt
-rw-r--r--. 1 root root 5 Apr 13 16:34 f4.txt
-rw-r--r--. 1 root root 0 Apr 13 16:33 f5.txt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值