节后上班第一天,按计划着手搭建hadoop和hive实验环境,还没开始安装就碰到一个坎,JDK安装包解包时报空间不足。原来的四个虚机,每个分配了8G,其中根文件系统6G,做完Fabric实验后空间所剩无几,因此需要扩容。下面记录的就是实际操作步骤。
环境:
VirtualBox 5.0.10、CentOS release 6.4
1. 使用下面的命令查看虚拟机的UUID
VBoxManage list hdds
结果如图1所示:
图1
2. 使用下面的命令将给虚拟机分配磁盘空间扩充至20G
VBoxManage modifyhd 640f7f92-7c0e-4f39-9567-9ea0c0b399ac --resize 20480
执行完后虚机的存储信息如图2所示:
图2
3. 查看当前操作系统的空间情况
df -h
结果如图3所示:
图3
可以看到根文件系统的6G空间使用率已经100%。
fdisk -l
结果如图4所示:
图4
可以看到:
(1)Linux就一块虚拟的物理盘/dev/sda,扩容后该盘的空间20G。
(2)该盘已有两个物理分区/dev/sda1和/dev/sda2。
(3)/dev/sda1 485M,用作boot分区。
(4)/dev/sda2 7.5G,分成两个逻辑卷,一个用作根6G,一个用作交换1.5G。
下面要做的就是将/dev/sda上未分配的磁盘空间分区,并添加到根分区所属的逻辑卷上。
4. 将/dev/sda上未分配的磁盘空间分区
fdisk /dev/sda
n
p
3
w
5. 重启Linux
reboot
6. 将新建的分区格式化,建立文件系统
mkfs.ext4 /dev/sda3
结果如图5所示:
图5
7. 创建物理卷
pvcreate /dev/sda3
执行完后查看物理卷
pvdisplay
结果如图6所示:
图6
可以看到新增了一个12G的物理卷
8. 查看卷组
vgdisplay
结果如图7所示:
图7
可以看到只有一个名为vg_fab1的卷组,当前大小为7.51G
9. 扩展卷组
vgextend vg_fab1 /dev/sda3
10. 查看逻辑卷
lvdisplay
结果如图8所示:
图8
可以看到用作根的逻辑卷路径为/dev/vg_fab1/lv_root
11. 扩展逻辑卷
lvextend -L 18G -n /dev/vg_fab1/lv_root
12. 调整根逻辑卷大小
resize2fs /dev/vg_fab1/lv_root
13. 再次查看当前操作系统的空间情况
df -h
结果如图9所示:
图9
可以看到根文件系统已经有18G空间。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
pv添加入vG
添加一块8G硬盘。
fdisk -l 后显示为:/dev/sdb为新添加的硬盘,一般我们一个硬盘分一个pv,这样便于管理。
1、将sdb生成pv: pvcreate /dev/sdb
2、把pv加到VG中:vgextend VolGroup00 /dev/sdb
3、将逻辑卷分区VG(LogVol00)增加8G: lvextend -L +8G /dev/VolGroup00/LogVol00
4、调整ext3: resize2fs -p /dev/VolGroup00/LogVol00
===============================================================
VG中删除pv
#通过实践,最好先加入一个新PV,将坏的PV上的数据转移到新PV上去,最好新PV的大小>=坏PV,不然resize2fs无法从大到小识别,e2fsck也无法修复这个问题
两种情况:
1 要更换的磁盘没有使用过
2 要更换的磁盘有数据
---没有数据的时候
1 (最好先卸载磁盘)检查文件系统是否有错误
[root@new-host-2 ~]# e2fsck -f /dev/sdcsdd/SDCSDD00
2 减少LV的大小 把SDCSDD00卷容量从24G调整回15.99G
#缩小LV后,LV变更后的容量务必大于或等于其档案系统容量,否则造成档案系统的错误
[root@new-host-2 ~]# lvreduce -L 15.99G /dev/sdcsdd/SDCSDD00
Rounding up size to full physical extent 15.99 GB
WARNING: Reducing active and open logical volume to 15.99 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce SDCSDD00? [y/n]: y
Reducing logical volume SDCSDD00 to 15.99 GB
Logical volume SDCSDD00 successfully resized
3 移除VG成员sde
[root@new-host-2 ~]# vgreduce sdcsdd /dev/sde
Removed "/dev/sde" from volume group "sdcsdd"
4 移除PV成员sde
[root@new-host-2 ~]# pvremove /dev/sde
Labels on physical volume "/dev/sde" successfully wiped
注意:如果sde中有资料则首先将sde这个PV中的资料转移到其他PV中
下面将自动转移数据
[root@smart404 ~]# pvmove -v /dev/sde
如果出现错误:提示双方的剩余PE太少,不能转移】
*pvmove指令会自动寻找VG中可用的pv,后将档案转移过去,也可以通过这个命令从sde转移到新增加的PV sdb中
[root@smart404 ~]# pvmove -v /dev/sde /dev/sdb
完成后,再次移除sde
[root@smart404 ~]# vgreduce sdcsdd /dev/sde