DataEngine平台安装完成并运行一段时间以后,部分服务异常。如图1所示。
图1 DataEngine服务异常
重启异常服务失败,如图2所示。
图2异常服务重启失败
使用Xshell登录到ITOA节点后台,查看ambari-server状态,显示其状态为停止。重启ambari-server失败,显示pgsql无法启动。通过cat /var/lib/pgsql/9.4/pgstartup.log查看pgsql启动日志,含有如下字样信息。
< 2017-06-07 16:27:15.365 CST >HINT: Future log output will appear in directory "pg_log".
could not write to log file: No space left on device
< 2017-06-23 09:16:56.403 CST >FATAL: could not write lock file "postmaster.pid": No space left on device
< 2017-06-23 12:31:20.786 CST >FATAL: could not write lock file "postmaster.pid": No space left on device
使用df –Th查看系统分区情况,如下
[root@node2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 50G 48G 11G 96% /
tmpfs tmpfs 32G 72K 32G 1% /dev/shm
/dev/sda1 ext4 477M 40M 412M 9% /boot
/dev/mapper/VolGroup-lv_home
ext4 435G 335M 413G 1% /home
综上所述,可以确定DataEngine中的服务重启失败是由于根目录空间占满导致。造成根目录空间过小的原因是,安装操作系统时,使用的是系统默认分区,从而磁盘上的大部分空间分配给了/home目录(从/dev/mapper/VolGroup-lv_home ext4 435G 335M 413G 1% /home可以看出)。
要解决上述问题,有如下方法:
1) 通过添加磁盘挂载在根目录下,扩展根目录空间
2) 手动调整/home和/目录空间大小,缩小/home空间,扩大/目录空间
通过添加磁盘来扩展根目录空间具体操作步骤参考系统扩容流程,该案例主要阐述手动调整home目录和root空间大小解决DataEngine平台因根目录占满无法服务启动问题的操作方法。
在已经安装好的操作系统环境里,手动调整/home和/目录空间大小操作步骤和注意事项如下:
第一步:使用df -Th命令查看分区情况
[root@node2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 50G 37G 11G 78% /
tmpfs tmpfs 32G 72K 32G 1% /dev/shm
/dev/sda1 ext4 477M 40M 412M 9% /boot
/dev/mapper/VolGroup-lv_home
ext4 435G 335M 413G 1% /home
第二步:使用ll /home/命令查看/home目录下文件
[root@node2 ~]# ll /home/
total 66372
drwx------ 5 ambari-qa hadoop 4096 Jun 8 09:04 ambari-qa
drwx------ 4 ams hadoop 4096 Jun 7 09:54 ams
drwx------ 4 hcat hadoop 4096 Jun 8 09:03 hcat
drwx------ 4 hdfs hadoop 4096 Jun 11 08:18 hdfs
drwx------ 6 hive hadoop 4096 Jun 8 09:04 hive
drwx------ 5 loguser loguser 4096 Jun 6 10:55 loguser
drwx------. 2 root root 16384 Jun 2 16:57 lost+found
drwx------ 4 mapred hadoop 4096 Jun 7 09:54 mapred
drwx------ 4 sqoop hadoop 4096 Jun 7 10:01 sqoop
drwx------ 4 tez hadoop 4096 Jun 8 09:03 tez
-r--r--r--. 1 root root 67897195 Jun 23 21:11 VMwareTools-9.10.0-2476743.tar.gz
drwxr-xr-x. 8 root root 4096 Jan 30 2015 vmware-tools-distrib
drwx------ 4 yarn hadoop 4096 Jun 7 09:54 yarn
drwx------ 4 zookeeper hadoop 4096 Jun 7 09:54 zookeeper
第三步:在根目录下新建homecontent文件夹,使用mv * /homecontent/对/home目录下所有文件进行备份。
[root@node2 ~]# mkdir /homecontent
[root@node2 ~]# cd /home
[root@node2 home]# mv * /homecontent/
[root@node2 home]# ll /homecontent/
total 66360
drwx------ 5 ambari-qa hadoop 4096 Jun 8 09:04 ambari-qa
drwx------ 4 ams hadoop 4096 Jun 7 09:54 ams
drwx------ 4 hcat hadoop 4096 Jun 8 09:03 hcat
drwx------ 4 hdfs hadoop 4096 Jun 11 08:18 hdfs
drwx------ 6 hive hadoop 4096 Jun 8 09:04 hive
drwx------ 5 loguser loguser 4096 Jun 6 10:55 loguser
drwx------. 2 root root 4096 Jun 2 16:57 lost+found
drwx------ 4 mapred hadoop 4096 Jun 7 09:54 mapred
drwx------ 4 sqoop hadoop 4096 Jun 7 10:01 sqoop
drwx------ 4 tez hadoop 4096 Jun 8 09:03 tez
-r--r--r--. 1 root root 67897195 Jun 23 21:11 VMwareTools-9.10.0-2476743.tar.gz
drwxr-xr-x. 8 root root 4096 Jan 30 2015 vmware-tools-distrib
drwx------ 4 yarn hadoop 4096 Jun 7 09:54 yarn
drwx------ 4 zookeeper hadoop 4096 Jun 7 09:54 zookeeper
[root@node2 home]# ll /home
total 0
第四步:使用 umount /home卸载home目录
[root@node2 ~]# umount /home
注意:如果使用umount /home 如果提示无法卸载,则是有进程占用/home,
使用fuser -m -v /home命令来查找出占用进程,然后使用kill -9 PID终止该进程。
重新使用df -Th查看系统分区信息,可以看到之前关于/home信息已经不可见
[root@node2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 50G 37G 11G 79% /
tmpfs tmpfs 32G 72K 32G 1% /dev/shm
/dev/sda1 ext4 477M 40M 412M 9% /boot
第五步:使用resize2fs -p /dev/mapper/VolGroup-lv_home 100G命令重置/home分区大小为100G
[root@node2 ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 100G
resize2fs 1.41.12 (17-May-2010)
Please run &#39;e2fsck -f /dev/mapper/VolGroup-lv_home&#39; first.
#提示先运行e2fsck -f /dev/mapper/VolGroup-lv_home
[root@node2 ~]# e2fsck -f /dev/mapper/VolGroup-lv_home
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/VolGroup-lv_home: 21/28950528 files (0.0% non-contiguous), 1867706/115777536 blocks
[root@node2 ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 100G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/VolGroup-lv_home to 26214400 (4k) blocks.
Begin pass 2 (max = 32777)
Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 3534)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 8)
Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/VolGroup-lv_home is now 26214400 blocks long.
第六步:使用挂mount /home命令挂载载/home目录,然后使用df -Th查看调整后的大小可以看到/home目录空间大小已经发生变化。
[root@node2 ~]# mount /home
[root@node2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 50G 37G 11G 79% /
tmpfs tmpfs 32G 72K 32G 1% /dev/shm
/dev/sda1 ext4 477M 40M 412M 9% /boot
/dev/mapper/VolGroup-lv_home
ext4 99G 60M 94G 1% /home
第七步:使用lvreduce -L 100G /dev/mapper/VolGroup-lv_home命令把目标分区(/home)减小至100G
[root@node2 ~]# lvreduce -L 100G /dev/mapper/VolGroup-lv_home
WARNING: Reducing active and open logical volume to 100.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce VolGroup/lv_home? [y/n]: y
Size of logical volume VolGroup/lv_home changed from 441.66 GiB (113064 extents) to 100.00 GiB (25600 extents).
Logical volume lv_home successfully resized.
第八步:用vgdisplay命令查看多余的空间,可以看到多出约340G的空间
[root@node2 ~]# vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 499.51 GiB
PE Size 4.00 MiB
Total PE 127874
Alloc PE / Size 40410 / 157.85 GiB
Free PE / Size 87464 / 341.66 GiB
VG UUID xAOYdh-2ayJ-4nHu-DHr5-iOoT-JSlB-t7XAh3
第九步:用lvextend -L +340G /dev/mapper/VolGroup-lv_root命令将多余的约340G空间挂载到/目录下
[root@node2 ~]# lvextend -L +340G /dev/mapper/VolGroup-lv_root
Size of logical volume VolGroup/lv_root changed from 50.00 GiB (12800 extents) to 390.00 GiB (99840 extents).
Logical volume lv_root successfully resized.
注意:在设定lv_root的大小时,不要把Free PE / Size的空间全部都用上,这很可能会出现Free PE空间不足的现象,建议保留一点Free PE的空间。
第十步:使用resize2fs -p /dev/mapper/VolGroup-lv_root命令激活目录扩展后的/目录大小
注:执行命令所需要耗时较长,请耐心等待。
[root@node2 ~]# resize2fs -p /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 25
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 102236160 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 102236160 blocks long.
第十一步:使用df -h查看修改成功后的分区情况
[root@node2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 384G 37G 328G 11% /
tmpfs tmpfs 32G 72K 32G 1% /dev/shm
/dev/sda1 ext4 477M 40M 412M 9% /boot
/dev/mapper/VolGroup-lv_home
ext4 99G 60M 94G 1% /home
第十二步:使用mv /homecontent/* /home将之前备份在homecontent目录中的文件移动到缩容后/home目录下
[root@node2 homecontent]# mv /homecontent/* /home
mv: overwrite `/home/lost+found&#39;? yes
[root@node2 homecontent]# ll /home
total 66360
drwx------ 5 ambari-qa hadoop 4096 Jun 8 09:05 ambari-qa
drwx------ 4 ams hadoop 4096 Jun 7 09:54 ams
drwx------ 4 hcat hadoop 4096 Jun 8 09:03 hcat
drwx------ 4 hdfs hadoop 4096 Jun 8 12:48 hdfs
drwx------ 4 hive hadoop 4096 Jun 8 09:03 hive
drwx------ 5 loguser loguser 4096 Jun 6 10:55 loguser
drwx------. 2 root root 4096 Jun 2 16:57 lost+found
drwx------ 4 mapred hadoop 4096 Jun 7 09:54 mapred
drwx------ 4 sqoop hadoop 4096 Jun 7 10:01 sqoop
drwx------ 4 tez hadoop 4096 Jun 8 09:03 tez
-r--r--r--. 1 root root 67897195 Jun 2 17:07 VMwareTools-9.10.0-2476743.tar.gz
drwxr-xr-x. 8 root root 4096 Jan 30 2015 vmware-tools-distrib
drwx------ 4 yarn hadoop 4096 Jun 7 09:54 yarn
drwx------ 4 zookeeper hadoop 4096 Jun 7 09:54 zookeeper
[root@node2 homecontent]# ll /homecontent/
total 0
上述操作成功执行后,回到DataEngine登录界面,重启所有服务服务,如图3所示。重启执行完后,所有服务即可正常运行。
图3 重启所有服务
DataEngine中出现根目录空间占满的根本原因是在于安装操作系统时系统分区操作不当。在进行系统分区正确的方式是使用自定义的方法来进行分区,将系统盘挂载在根目录下,数据盘根据实际情况挂载/opt目录下。如果采用系统默认分区,大部分系统空间会分配给/home,从而/因为空间较少被占满导致服务异常问题。
如果出现/目录被占满问题,推荐采用磁盘扩容或者重新部署DataEngine的方法来解决问题,本案例中所述通过手动调整/home和/大小的方式只是一种临时折中方案。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作