友情提醒
数据无价,以下操作请大家提前备份好自己的个人数据,以防操作失误造成不可逆损失,操作前确认自己知晓可能存在的系统损坏或者数据丢失风险!
我使用的环境是VMware
1.添加新硬盘
查看当前磁盘数据
添加一块新的硬盘
下方已显示连接
此时使用fdisk -l
发现新添加的硬盘没有刷新出来
我们使用for i in /sys/class/scsi_host/host*/scan;do echo "- - -" >$i;done
手动刷新硬盘
此时硬盘已经读取了👇
给新硬盘分区
fdisk /dev/sdb
到此时已经分区完成,但是我们还没有保存,此时按w进行保存退出
使用命令fdisk -l
查看
磁盘划分成功,下面就要对分区进行格式化了使用命令mkfs -t ext4 /dev/sdb1
挂载磁盘mount /dev/sdb1 /data
此时磁盘以分区完成
可以做一些开机挂载
- 修改
/etc/fstab/
的配置文件,修改此文件需谨慎 - 或者修改
/etc/rc.local/
文件
2.磁盘无损扩容
我们先cd到data下,创建一些数据
用来测试扩容后资料是否丢失
关机进行磁盘扩容
进入系统查看使用fdisk -l
磁盘未分配的空间
卸载磁盘
对磁盘进行重新分区
打印分区表查看是否分区完成
按w保存退出
- 注意:如果使用了开机挂载的话此时系统可能会自动对磁盘进行挂载
使用e2fsck -f /dev/sdb1
检测磁盘是否有误
扩展数据盘大小
使用resize2fs /dev/sdb1
(如文件格式为xfs,则使用命令:xfs_growfs /dev/sdb1
)
此时扩展已经完成
挂载磁盘并查看是否扩容成功
检测数据是否存在
3.在虚拟机上扩容根分区
当前环境,根分区有50G的空间,需要扩容到100G的空间
查看磁盘信息
[root@sunflower ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.1M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 48G 31G 18G 64% /
/dev/sda1 297M 177M 120M 60% /boot
overlay 48G 31G 18G 64% /var/lib/docker/overlay2/106bcc209e675b43a87372c195579f9b0721b967bc29b2e8e76d17cb88e3a4f9/merged
tmpfs 783M 0 783M 0% /run/user/0
overlay 48G 31G 18G 64% /var/lib/docker/overlay2/31e3312e019aee8bba6490b34903611aae8c2ba4d3ce7a532246f91de50b05c7/merged
[root@sunflower ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 300M 0 part /boot
└─sda2 8:2 0 49.7G 0 part
├─centos-root 253:0 0 47.7G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
如在虚拟机里面设置后还是显示原来的容量,请重启服务
使用fdisk查看,容量为100G,实际只使用了50G
[root@sunflower ~]# fdisk /dev/sda
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.
Command (m for help): p #打印分区
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x0002907c
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 104857599 52120576 8e Linux LVM
Command (m for help): n # 新建分区
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): # 使用默认,直接回车
Using default response p
Partition number (3,4, default 3): # 使用默认,直接回车
First sector (104857600-209715199, default 104857600): # 使用默认,直接回车
Using default value 104857600
Last sector, +sectors or +size{K,M,G} (104857600-209715199, default 209715199): # 使用默认,直接回车
Using default value 209715199
Partition 3 of type Linux and of size 50 GiB is set
Command (m for help): w # 输入w保存并退出分区设置
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
重新读取分区
[root@sunflower ~]# partprobe
查看分区是否创建
[root@sunflower ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 49.7G 0 part
│ ├─centos-root 253:0 0 47.7G 0 lvm /
│ └─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─sda3 8:3 0 50G 0 part
sr0 11:0 1 1024M 0 rom
开始扩容创建物理卷
[root@sunflower ~]# lvm
lvm> pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
lvm> pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <49.71 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 12724
Free PE 0
Allocated PE 12724
PV UUID fXyNZu-dZTa-MSoa-kTyY-qtt3-lkoh-PdpClR
"/dev/sda3" is a new physical volume of "50.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda3
VG Name
PV Size 50.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID wvZ0e9-ddkV-MSeO-xj8q-wEsd-ohnE-uAMkfv
lvm> vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 49.70 GiB
PE Size 4.00 MiB
Total PE 12724
Alloc PE / Size 12724 / 49.70 GiB
Free PE / Size 0 / 0
VG UUID BsQURY-w3fQ-RIFX-vQwi-DqOQ-buq8-XYc9Yx
将物理卷加入到卷组
lvm> vgextend centos /dev/sda3
Volume group "centos" successfully extended
lvm> vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size <99.70 GiB
PE Size 4.00 MiB
Total PE 25523
Alloc PE / Size 12724 / 49.70 GiB
Free PE / Size 12799 / <50.00 GiB
VG UUID BsQURY-w3fQ-RIFX-vQwi-DqOQ-buq8-XYc9Yx
将卷组剩余空间添加到逻辑卷/dev/centos/root
lvm> lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from 47.70 GiB (12212 extents) to <97.70 GiB (25011 extents).
Logical volume centos/root successfully resized.
lvm> exit
Exiting.
同步到文件系统,实现对根目录的扩容。
[root@sunflower ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3126272 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=12505088, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6106, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 12505088 to 25611264
查看是否扩容成功
[root@sunflower ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.1M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 98G 31G 68G 32% /
/dev/sda1 297M 177M 120M 60% /boot