磁盘分区LVM--磁盘结构

硬盘设备名:

linux一切皆文件,所以硬盘他的文件在内核中自动生成识别出来,识别出来以后,放到/dev的下面,有一个硬盘在其下面生成一个对应的文件,有两个硬盘就会生成连个对应的文件,名称和硬盘种类有关例如:sas接口 sata接口

虚拟磁盘的名称叫

/dev/sd?  //跟a就是第一块硬盘,跟b就是第二块硬盘
[root@www ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  //后面的一二三代表分区
虚拟磁盘的名称叫 
/dev/vd
/dev/xvd

添加硬盘

刷新一下,识别硬盘

[root@www ~]# echo '- - -' > /sys/class/scsi_host/host2/scan //刷新一下
[root@www ~]# lsblk //即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   49G  0 part 
  ├─centos-root 253:0    0 45.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  

识别硬盘格式

# 1表示机械
# 0表示固态硬盘
[root@www ~]# lsblk -d -o name,rota
NAME ROTA
sda     1
sdb     1
sdc     1
sr0     1

有两种分区模式MBR和GPT分区

MBR分区中 一个硬盘最多有4个主分区或者三个主分区和1个扩展分区(n个逻辑分区)

创建分区的命令
fdisk  管理MBR分区
gdisk  管理GPT分区
parted 高级分区操作,可以是交互或非交互方式 //稍作了解即可
partproble  同步书信一下分区里面的数据
输入partprobe 让系统识别新增的分区,然后创建物理卷

分区工具 fdisk 和gdisk

p  分区列表 //显示分区表
t  更改分区类型 
e  逻辑分区
n  创建新分区
d  删除分区
w  保存退出
q  不保存退出
fdisk /dev/sdb

逻辑卷(lvm允许对卷进行修改)VG

我们把多块硬盘或者分区逻辑的组成在一起我们叫做卷组VG(volume group)

实现过程

将设备指定为物理卷 --》》用一个或多个物理卷来创建一个卷组--》》再通过卷组创建逻辑卷--》》再通过挂载使用逻辑卷(分区)

开始测试

准备一个分区记得改格式 一个硬盘

先把物理磁盘变成物理卷

[root@www ~]# pvcreate /dev/sd{b1,c}
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@www ~]# pvs  //查看物理卷
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <49.00g  4.00m
  /dev/sdb1         lvm2 ---   10.00g 10.00g
  /dev/sdc          lvm2 ---   10.00g 10.00g 
[root@www ~]# pvdisplay
"/dev/sdc" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM
   
  "/dev/sdb1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               qKEnlk-oAr1-OfFM-cM7W-jBTP-ZOe3-lPT56V

把物理卷加入到卷组

PE 叫物理盘区,在逻辑卷中负责分配最小最小单位,例如之后要用到的扩容缩容必须要用到以PE为单位的,

PE大小可以指定,默认是4M

vgcreate -s(指定PE大小) 16 vg0 /dev/sd{b1,c}

[root@www ~]# vgcreate vggroup /dev/sd{b1,c}
  Volume group "vggroup" successfully created
[root@www ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree 
  centos    1   2   0 wz--n- <49.00g  4.00m
  vggroup   2   0   0 wz--n-  19.99g 19.99g
[root@www ~]# vgdisplay
--- Volume group ---
  VG Name               vggroup
  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               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               Ugx1bj-bL7L-yZcH-btjC-n0dO-0skf-EWDTGa

把卷组分成逻辑卷

在逻辑卷中PE叫LE pvdisplay 可以查看是那个物理卷分走的逻辑卷

[root@www ~]# lvcreate -n mysql -l 1000 vggroup 
  Logical volume "mysql" created.
[root@www ~]# lvs
  LV    VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  centos  -wi-ao---- <45.12g                                                    
  swap  centos  -wi-ao----  <3.88g                                                    
  mysql vggroup -wi-a-----  <3.91g                                                    
[root@www ~]# lvdisplay

--- Logical volume ---
  LV Path                /dev/vggroup/mysql
  LV Name                mysql
  VG Name                vggroup
  LV UUID                IJbyFS-wOjQ-4hpV-iK1x-Fqj9-YO3H-qgWdZ4
  LV Write Access        read/write
  LV Creation host, time www, 2023-02-15 15:13:26 +0800
  LV Status              available
  # open                 0
  LV Size                <3.91 GiB
  Current LE             1000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

查看逻辑卷所在位置

[root@www ~]# ll /dev/vggroup/log 
lrwxrwxrwx 1 root root 7 2月  15 15:20 /dev/vggroup/log -> ../dm-3
[root@www ~]# ll /dev/vggroup/mysql 
lrwxrwxrwx 1 root root 7 2月  15 15:13 /dev/vggroup/mysql -> ../dm-2

格式化是为了写入文件系统,格式化非常简单,使用mkfs.文件系统名即可

创建文件系统

[root@www ~]# mkfs.ext4 /dev/vggroup/mysql 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
256000 inodes, 1024000 blocks
51200 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1048576000
32 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

[root@www ~]# blkid
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="4605ff7f-243b-4a27-a39e-52e6cdfe1846" TYPE="xfs" 
/dev/sda2: UUID="LtW5Jh-Tdbs-XeQE-5oyj-M3m1-1CBf-mqPmRa" TYPE="LVM2_member" 
/dev/sdb1: UUID="qKEnlk-oAr1-OfFM-cM7W-jBTP-ZOe3-lPT56V" TYPE="LVM2_member" PARTUUID="1ae63c86-a655-44a0-9d50-fb8cab83a8e5" 
/dev/mapper/centos-root: UUID="a1bb456a-312d-4ad6-805f-ec9e12e701c7" TYPE="xfs" 
/dev/sdc: UUID="f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM" TYPE="LVM2_member" 
/dev/mapper/centos-swap: UUID="4d3f8a28-2f87-408f-bda4-74d531098319" TYPE="swap" 
/dev/mapper/vggroup-mysql: UUID="04e0df52-54b5-42ab-bced-f8f30afce3e4" TYPE="ext4" 

挂载

vi  /etc/fstab 
/dev/vggroup/mysql   /mnt/mysql(挂载点)  ext4(文件系统)  defaults  0 0
mkdir -p /mnt/mysql
mount -a[root@www ~]# df
文件系统                     1K-块    已用     可用 已用% 挂载点
devtmpfs                   1918592       0  1918592    0% /dev
tmpfs                      1930644       0  1930644    0% /dev/shm
tmpfs                      1930644   11800  1918844    1% /run
tmpfs                      1930644       0  1930644    0% /sys/fs/cgroup
/dev/mapper/centos-root   47285700 1624100 45661600    4% /
/dev/sda1                  1038336  153892   884444   15% /boot
tmpfs                       386132       0   386132    0% /run/user/0
/dev/mapper/vggroup-mysql  3966144   15992  3728968    1% /mnt/mysql

逻辑卷的扩容

lvextend -l  50%free /dev/vggroup/mysql 
Size of logical volume vggroup/mysql changed from <3.91 GiB (1000 extents) to <6.09 GiB (1559 extents).
Logical volume vggroup/mysql successfully resized.
同步数据
resize2fs /dev/vggroup/mysql 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vggroup/mysql is mounted on /mnt/mysql; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vggroup/mysql is now 1596416 blocks long.

]# df -Th
文件系统                  类型      容量  已用  可用 已用% 挂载点
devtmpfs                  devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                     tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                     tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                     tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   xfs        46G  1.6G   44G    4% /
/dev/sda1                 xfs      1014M  151M  864M   15% /boot
tmpfs                     tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vggroup-mysql ext4      3.8G   16M  3.6G    1% /mnt/mysql
/dev/mapper/vggroup-log   xfs       3.9G   33M  3.9G    1% /mnt/log
[root@www ~]# df -Th
文件系统                  类型      容量  已用  可用 已用% 挂载点
devtmpfs                  devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                     tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                     tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                     tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   xfs        46G  1.6G   44G    4% /
/dev/sda1                 xfs      1014M  151M  864M   15% /boot
tmpfs                     tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vggroup-mysql ext4      6.0G   16M  5.7G    1% /mnt/mysql
/dev/mapper/vggroup-log   xfs       3.9G   33M  3.9G    1% /mnt/log
xfs文件系统扩容
 lvextend -L 1G /dev/vggroup/log 
New size given (256 extents) not larger than existing size (1000 extents)
 同步数据
xfs_growfs  /mnt/log/
meta-data=/dev/mapper/vggroup-log isize=512    agcount=4, agsize=256000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1024000, 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
[root@www ~]# df -h
文件系统                   容量  已用  可用 已用% 挂载点
devtmpfs                   1.9G     0  1.9G    0% /dev
tmpfs                      1.9G     0  1.9G    0% /dev/shm
tmpfs                      1.9G   12M  1.9G    1% /run
tmpfs                      1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root     46G  1.6G   44G    4% /
/dev/sda1                 1014M  151M  864M   15% /boot
tmpfs                      378M     0  378M    0% /run/user/0
/dev/mapper/vggroup-mysql  6.0G   16M  5.7G    1% /mnt/mysql
/dev/mapper/vggroup-log    3.9G   33M  3.9G    1% /mnt/log

重新给一个磁盘分区,把他选作物理分区,在把它加入到vg卷组中,再进行扩容
fdisk /dev/sdc
pvcreate  /dev/sdc1
pvs
vgextend vggroup /dev/sdc1  //把新物理卷加入到卷组中
vgs
vgdisplay

逻辑卷缩容(xfs不支持缩减,只能先格式化在缩减,那这样卷上的数据都没了,缩减也没意义了)

第一步先取消挂载
umount /mnt/mysql/
第二部检查文件(必做,不做他也会提示你)
resize2fs /dev/vggroup/mysql  5G
resize2fs 1.42.9 (28-Dec-2013)
请先运行 'e2fsck -f /dev/vggroup/mysql'.

e2fsck -f /dev/vggroup/mysql
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vggroup/mysql: 11/392000 files (0.0% non-contiguous), 44996/1596416 blocks
第三步缩减
resize2fs /dev/vggroup/mysql  5G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vggroup/mysql to 1310720 (4k) blocks.
The filesystem on /dev/vggroup/mysql is now 1310720 blocks long.
第四步缩减逻辑卷 //两次缩减的值必须保持一致
	[root@www ~]# lvreduce -L 5G /dev/vggroup/mysql 
  WARNING: Device for PV f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM not found or rejected by a filter.
  Couldn't find device with uuid f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM.
  Cannot change VG vggroup while PVs are missing.
  Consider vgreduce --removemissing.
  Cannot process volume group vggroup
第五步重新挂载
mount -a
第六步查看缩减
 df -Th
文件系统                  类型      容量  已用  可用 已用% 挂载点
devtmpfs                  devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                     tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                     tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                     tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   xfs        46G  1.6G   44G    4% /
/dev/sda1                 xfs      1014M  151M  864M   15% /boot
tmpfs                     tmpfs     378M     0  378M    0% /run/user/0
/dev/mapper/vggroup-log   xfs       3.9G   33M  3.9G    1% /mnt/log
/dev/mapper/vggroup-mysql ext4      4.9G   16M  4.7G    1% /mnt/mysql

更换同在一个卷组内的硬盘

1.先转移数据
pvmove /dev/sdc1
再删除卷组
vgreduce vggroup /dev/sdc1
再删除物理卷
pvremove  /dev/sdc 
在拆除硬盘

删除逻辑卷 同理

先取消挂载
[root@www ~]# umount /mnt/mysql/
[root@www ~]# umount /mnt/log/
2.先移除逻辑卷
lvremove /dev/vggroup/mysql 
  WARNING: Device for PV f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM not found or rejected by a filter.
  Couldn't find device with uuid f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM.
Do you really want to remove active logical volume vggroup/mysql? [y/n]: y
  Logical volume "mysql" successfully removed
[root@www ~]# lvremove /dev/vggroup/log 
  WARNING: Device for PV f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM not found or rejected by a filter.
  Couldn't find device with uuid f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM.
Do you really want to remove active logical volume vggroup/log? [y/n]: y
  Logical volume "log" successfully removed
[root@www ~]# lvs
  WARNING: Device for PV f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM not found or rejected by a filter.
  Couldn't find device with uuid f4trEC-xRX1-XfhJ-XCTd-RDnv-FVYT-1blirM.
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <45.12g                                                    
  swap centos -wi-ao----  <3.88g    
3.移除卷组
vgremove vggroup
4.移除物理卷
pvremove  /dev/sd{b1,c1}
5.在fdiskl 删除文件格式
就恢复到最初的硬盘

猜你喜欢

转载自blog.csdn.net/m0_67849390/article/details/130192288
今日推荐