硬盘设备名:
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 删除文件格式 就恢复到最初的硬盘