一、需求:
某个盘符写满不影响主程序的运行。
二、设计:
1,关键程序单独使用某个盘符。
2,冗余程序使用单独盘符。
3,日志等数据单独使用盘符。
4,过程(临时)数据单独使用盘符。
三、现状:
1,我们使用centos 7.5 minimal装系统,默认3个盘符。分别为root,swap,home
2,如果我们新建文件夹,他们都是默认挂载到/root目录的。带来的问题就是如果data目录数据写满则/dev/mapper/centos-root 则会写满,那么程序如果运行在/opt或者/usr目录则会出现不可预知的错误。
[root@test ~]# df /usr/ -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 7.0G 44G 14% /
[root@iVoice8000 ~]# mkdir /data
mkdir: cannot create directory ‘/data’: File exists
[root@iVoice8000 ~]# df /data -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 7.0G 44G 14% /
[root@iVoice8000 ~]# df /tmp -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 7.0G 44G 14% /
[root@iVoice8000 ~]# fdisk -l
四、方案:
1,在软件安装前对系统现存盘符进行修改
2,不动/dev/mapper/centos-root盘符,先卸载/dev/mapper/centos-home释放磁盘空间
3,重新规划sda2的磁盘划分
五、实施:
1,释放磁盘空间
1.1 查看磁盘使用情况
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─centos-home 253:2 0 67G 0 lvm /home
sr0 11:0 1 1024M 0 rom
可以看到sda2下分了3个逻辑盘符,其中root 50G,home 67G
1.2 取消挂载
[root@localhost ~]# umount /home/
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─centos-home 253:2 0 67G 0 lvm
sr0 11:0 1 1024M 0 rom
使用umount 命令取消挂载,也就是取消文件夹与逻辑盘符的绑定关系
使用lsblk命令查看盘符挂载情况,发现倒数第二行挂载点上没有/home了
1.3 删除逻辑倦
使用lvdisplay查看逻辑盘符
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID Br0XAY-bwe9-HGV4-hS90-UAhv-Vqk3-IEeNkP
LV Write Access read/write
LV Creation host, time localhost, 2021-06-10 11:26:23 -0400
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/home
LV Name home
VG Name centos
LV UUID TqdieY-PHn9-1yWL-2UGC-ivvb-8dp8-qG8OZ5
LV Write Access read/write
LV Creation host, time localhost, 2021-06-10 11:26:23 -0400
LV Status available
# open 0
LV Size 66.99 GiB
Current LE 17150
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID iibIO2-C3SJ-XSqD-BDL1-lSZ2-EO6b-fXfFDb
LV Write Access read/write
LV Creation host, time localhost, 2021-06-10 11:26:24 -0400
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
使用lvremove删除逻辑倦
[root@localhost ~]# lvremove home
Volume group "home" not found
Cannot process volume group home
[root@localhost ~]# lvremove /dev/centos/home
Do you really want to remove active logical volume centos/home? [y/n]: y
Logical volume "home" successfully removed
再次使用lvdisplay查看逻辑盘符发现home对应的盘符没有了
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID Br0XAY-bwe9-HGV4-hS90-UAhv-Vqk3-IEeNkP
LV Write Access read/write
LV Creation host, time localhost, 2021-06-10 11:26:23 -0400
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID iibIO2-C3SJ-XSqD-BDL1-lSZ2-EO6b-fXfFDb
LV Write Access read/write
LV Creation host, time localhost, 2021-06-10 11:26:24 -0400
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
1.4 查看结果
使用lsblk发现sda2总共119G 而sda2分出的root和swap总共就占了50G+2G 还剩下67G就是我们释放出来的空间
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
2,分盘
2.1 创建逻辑分区
使用lvcreate创建逻辑分区
[root@localhost ~]# lvcreate -L 20G -n home centos
WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/centos/home.
Logical volume "home" created.
[root@localhost ~]# lvcreate -L 20G -n opt centos
Logical volume "opt" created.
[root@localhost ~]# lvcreate -L 10G -n data centos
Logical volume "data" created.
2.2剩余空间创建逻辑分区
先使用vgdisplay查看空间,再根据剩余空间大小创建
[root@localhost ~]# vgdisplay centos
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 5
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <119.00 GiB
PE Size 4.00 MiB
Total PE 30463
Alloc PE / Size 26112 / 102.00 GiB
Free PE / Size 4351 / <17.00 GiB
VG UUID N5ImDE-pW9u-oNCJ-diM8-380f-B5pW-Pmfq56
[root@localhost ~]# lvcreate -L 15G -n tmp centos
Logical volume "tmp" created.
2.3查看结果
查看分区和挂载情况,发现sda2多了好多逻辑盘符,但是挂载点都没有挂载目录
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
├─centos-home 253:2 0 20G 0 lvm
├─centos-opt 253:3 0 20G 0 lvm
├─centos-data 253:4 0 10G 0 lvm
└─centos-tmp 253:5 0 15G 0 lvm
sr0 11:0 1 1024M 0 rom
3,重新挂载
挂载的实质是将文件夹与逻辑盘对应。
3.1 格式化
使用mkfs.xfs格式化新盘符
[root@localhost /]# mkfs.xfs /dev/mapper/centos-opt
meta-data=/dev/mapper/centos-opt isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, 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
3.2 挂载
[root@localhost /]# mount /dev/mapper/centos-opt /opt
[root@localhost /]# mount /dev/mapper/centos-data /data
[root@localhost /]# mount /dev/mapper/centos-tmp /tmp
[root@localhost /]# mount /dev/mapper/centos-home /home
3.3 查看结果
[root@localhost /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
├─centos-home 253:2 0 20G 0 lvm /home
├─centos-opt 253:3 0 20G 0 lvm /opt
├─centos-data 253:4 0 10G 0 lvm /data
└─centos-tmp 253:5 0 15G 0 lvm /tmp
sr0 11:0 1 1024M 0 rom
4,固化
重启系统后会发现之前挂载的东西都没了。但是/home这个挂载点在。
因为之前的设置都是没有固化到系统的,相当于动态配置,重启会失效。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
├─centos-home 253:2 0 20G 0 lvm /home
├─centos-opt 253:3 0 20G 0 lvm
├─centos-data 253:4 0 10G 0 lvm
└─centos-tmp 253:5 0 15G 0 lvm
sr0 11:0 1 1024M 0 rom
打开/etc/fstab,将新加的mount对应关系写入该文件即可
#
# /etc/fstab
# Created by anaconda on Thu Jun 10 11:26:25 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=3bb40f7e-73f9-43f9-9cff-6c6edc69568e /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-data /data xfs defaults 0 0
/dev/mapper/centos-tmp /tmp xfs defaults 0 0
/dev/mapper/centos-opt /opt xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
六、总结
1,我花了几天时间看磁盘挂载相关内容,并进行了多次实践。
2,本次文章是我一边做上述操作,一边记录的,算是巩固知识。
3,之前踩的坑本文没有描述,后续会做记录
4,本文提到的各种命令和背景知识,后续等我融会贯通了再写一篇。