大数据环境中的系统磁盘的常见问题
目录
- 1 Centos 7 LVM 的创建与使用
- 2 home 空间扩展到根下
- 3 Centos7扩展挂载点的扩展容量问题
- 3.1 查询磁盘信息
- 3.2 扩展/var节点容量
- 3.3 扩展根节点容量
- 3.4 vgs扩展空间
- 4 某些数据节点的根空间被占满的问题
1 Centos 7 LVM 的创建与使用
LVM(Logical Volume Manager):首先是基于实际的物理磁盘创建LVM分区,并创建物理卷PV。一个或多个物理卷可以用来创建卷组VG。然后基于卷组可以创建逻辑卷LV。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统中挂载和使用。
物理长度PE(PhysicalExtent):物理长度是将物理卷组合为卷组后,所划分的最小存储单位,即逻辑意义上磁盘的最小存储单位。LVM默认PE大小为4MB。
物理卷PV(PhysicalVolume):物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。
卷组VG(VolumeGroup):卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量以及个数。
逻辑卷LV(LogicalVolume):逻辑卷就是LVM逻辑意义上的分区,可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。
# 1 查看设备列表
[root@hdp01 rpm]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 512M 0 part /boot
├─sda3 8:3 0 1M 0 part
└─sda4 8:4 0 930G 0 part├─vg_centos-root 253:0 0 10G 0 lvm /├─vg_centos-swap 253:1 0 16G 0 lvm [SWAP]├─vg_centos-tmp 253:2 0 16G 0 lvm /tmp└─vg_centos-home 253:3 0 15G 0 lvm /home
sdb 8:16 0 1.8T 0 disk
sdc 8:32 0 1.8T 0 disk
sdd 8:48 0 1.8T 0 disk
sde 8:64 0 1.8T 0 disk
sdf 8:80 0 1.8T 0 disk
sdg 8:96 0 1.8T 0 disk
sdh 8:112 0 1.8T 0 disk
sdi 8:128 0 1.8T 0 disk
sdj 8:144 0 1.8T 0 disk
sdk 8:160 0 1.8T 0 disk# 2 查看磁盘分区列表
fdisk -l# 3 开始对 sdb 磁盘进行分区
[root@shuke1 rpm]# fdisk /dev/sdb
Disk /dev/sdb: 1999.8 GB, 1999844147200 bytes, 3905945600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
[root@shuke1 rpm]# fdisk /dev/sdb
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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x11041222.
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Command (m for help): m
Command actiona toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partitiong create a new empty GPT partition tableG create an IRIX (SGI) partition tablel list known partition typesm print this menun add a new partitiono create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality (experts only)
Command (m for help): n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-3905945599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-3905945599, default 3905945599):
Using default value 3905945599
Partition 1 of type Linux and of size 1.8 TiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS accessa OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/Ob W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStorc W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fse W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPTf W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p
Disk /dev/sdb: 1999.8 GB, 1999844147200 bytes, 3905945600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x11041222Device Boot Start End Blocks Id System
/dev/sdb1 2048 3905945599 1952971776 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# 4 查看分区sdb磁盘分区信息
fdisk -l /dev/sdb# 5 创建物理卷 PV
pvcreate /dev/sd{b,c,d,e,f}1
pvscan
pvdisplay /dev/sdb1# 5 创建LVM(Logical Volume Manager)卷组
# -s:卷组上的物理卷的PE大小
#vgcreate -s 16m vg_bg /dev/sdb1
vgcreate vg_bg /dev/sd{b,c,d,e,f}1
# 动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量
#vgextend vg_bg /dev/sd{b,c,d,e,f}1# 显示卷组
vgdisplay vg_bg# 重命名
#vgrename vg_bigdata vg_bg
# 删除卷组
#vgremove bigdata# 6 创建逻辑卷 LV
# 逻辑卷是创建在卷组之上,逻辑卷对应的设备文件保存在卷组目录下;
# [-n|--name LogicalVolumeName](逻辑卷名字)
#lvcreate -L 1.8T -n lv_bg vg_bg
#
# 新建LV,并使用全部的 vg
lvcreate -l 100%FREE -n lv_bg vg_bg
lvdisplay /dev/vg_bg/lv_bg# 扩展逻辑卷的大小
#lvextend -L +7.2T /dev/vg_bg/lv_bg# 重命名 lv
#lvrename vg_bg lv_bigdata lv_bg# 7 查看 lvm 信息
pvs
vgs
lvs# 8 格式化为 xfs
# mke2fs -t ext4 /dev/vg_bg/lv_bg
mkfs -t xfs /dev/vg_bg/lv_bg# 9 挂载到 /bigdata
mkdir -pv /bigdata
mount /dev/vg_bg/lv_bg /bigdata/
df -hl
# 【注意】如果 PV 和 LV 重命名了,需要重新卸载再挂载,也要记得修改 /etc/fstab 文件
# umount -v /bigdata/# fstab文件(/etc/fstab)中添加如下信息
/dev/mapper/vg_bg-lv_bg /bigdata xfs defaults,noatime,nodiratime 0 0
2 home 空间扩展到根下
# 1 备份 home
tar -zcf home.tar.gz home# 2 卸载 home
umount /home# 3 查看
df -hl# 4 移除 home 的 lv
# /dev/vg名/lv名
# vg 名(卷组名)可通过 vgdisplay 查看
# lv 名(逻辑卷名)可通过 lvdisplay 查看
lvremove /dev/centos/home# 5 扩展剩余的所有空间到 root
lvextend -l +100%FREE /dev/centos/root# 6 xfs 格式生效
xfs_growfs /dev/centos/root# 7 恢复 home 数据,将备份的数据解压到跟下
tar -zxf home.tar.gz -C /# 8【重要】修改 fstab 文件
# 将 /dev/mapper/centos-home /home 行注释或者删除,保存
# 否则下次重启机器会报:welcome to emergency mode!after logging in ,type “journalctl -xb” to view system logs,“systemctl reboot” to reboot ,“systemctl default” to try again to boot into default mode
vi /etc/fstab
#/dev/mapper/centos-home /home xfs defaults 0 0
3 Centos7扩展挂载点的扩展容量问题
如果安装CentOS系统时分配了/var
挂载点的空间,但是分配的比较小,这个目录在CentOS中主要用来放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log
,/var/log/message
所有的登录文件存放目录,/var/spool/mail
邮件存放的目录, /var/run
程序或服务启动。
如果我们又安装了CDH,则可能会在/var/lib/
创建一个cloudera-service-monitor
文件,这个文件夹主要用来保存时间序列和健康数据、Impla查询的元数据、Yarn应用的元数据等,运行一段时间这个文件可能会占用很大。如果/var
是挂在文件系统的某个卷上,可能会面对扩展这个挂载点的空间。生产环境对集群一般都有监测,当一个挂载点的可用空间较少时会频繁报警,解决方法就是扩展容量
本次比如发生了这个问题,我们有添加了一个500GB的硬盘,现在我们来将这500GB的空间中一部分分配到/var
,余下的全部分配到根节点,从而起到扩展容量的目的。
3.1 查询磁盘信息
#查看系统磁盘空间的使用情况。
# ①从输出的信息可以看到根节点挂在在/dev/mapper/VolGroup-root,/var挂在在/dev/mapper/VolGroup-var
# ②/var的容量为8GB,已用84%
[root@cdh1 ~]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup-root 25G 16G 9.4G 62% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 201M 16G 2% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/xvda1 497M 254M 243M 52% /boot
/dev/mapper/VolGroup00-consul 1014M 33M 982M 4% /consul
/dev/mapper/VolGroup-var 8.0G 6.7G 1.4G 84% /var
tmpfs 3.2G 0 3.2G 0% /run/user/0
tmpfs 3.2G 0 3.2G 0% /run/user/99
cm_processes 16G 21M 16G 1% /run/cloudera-scm-agent/process# 查看磁盘信息,同时注意设备一栏
# 可以看到磁盘/dev/xvdb可用空间为493.9 GB,
# 接下来就让这个容量分配到/根节点和/var节点。
# 目标:将其中分出42GB扩展到 /var,剩余全部扩展到 /根节点
[root@cdh1 ~]# fdisk -l
磁盘 /dev/xvdb:493.9 GB, 493921239040 字节,964689920 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/xvda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0003755b设备 Boot Start End Blocks Id System
/dev/xvda1 * 2048 1026047 512000 83 Linux
/dev/xvda2 1026048 3131391 1052672 8e Linux LVM
/dev/xvda3 3131392 83886079 40377344 8e Linux LVM磁盘 /dev/mapper/VolGroup-root:26.3 GB, 26315063296 字节,51396608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
……# 获取指定的磁盘的信息
[root@cdh1 ~]# fdisk -l /dev/xvdb
磁盘 /dev/xvdb:493.9 GB, 493921239040 字节,964689920 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
3.2 扩展/var节点容量
目前容量为8GB,因为这个节点是Cloudera Manager 服务节点,可以将这个扩展42GB
# 主要对磁盘/dev/xvdb进行分区
# m:获取帮助信息
# n:添加一个新分区
# p:分区类型为主分区。(e为扩展分区。一般是选择主分区,且一个磁盘最多只能有创建四个主分区。扩展分区可以没有,最多一个)
# 选择起始扇区:直接回车,默认为从起始扇区开始
# 选择结束扇区:可以填扇区值,也可以填扇区大小,这里填写+42GB,表示创建一个42GB的分区。结束扇区的值 = 起始扇区值+分区字节大小/每个扇区大小
# 也可以填写结束的扇区值,例如扩展42GB,结束扇区的值=2048+42*1024*1024*1024/512=88082432
# 直接回车,则为全部扇区都分给此分区
# t:改变一个分区系统的id。如果只有一个分区,默认会选择这个分区,如果有多个会提示选择要操作的分区号(1-4)
# L:列出所有代码
# 8e:设置分区类型为 Linux LVM
# w:保存并退出。上面的操作会暂存在内存,需要保存后才会生效。如果还要继续设置其它新分区,可以继续创建新分区完毕后再统一保存退出。
#
[root@cdh1 ~]# fdisk /dev/xvdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0xc121d7db 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):m
命令操作a toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partitiong create a new empty GPT partition tableG create an IRIX (SGI) partition tablel list known partition typesm print this menun add a new partitiono create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition‘s system idu change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-964689919,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-964689919,默认为 964689919):+42G
分区 1 已设置为 Linux 类型,大小设为 42 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/Ob W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStorc W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fse W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPTf W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。# 如果出现如下提示,则必须要重启系统。如果没有其他提示,可不用非要重启,继续操作即可
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
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)[root@cdh1 ~]# reboot
Connection to xx.xxx.x.xx closed by remote host.
Connection to xx.xxx.x.xx closed.# 再次查看磁盘信息,可以和前面的对比,很明显多了一行。这个就是我们新创建的一个分区,/dev/xvdb1需要记下
# /dev/xvdb1 2048 88082431 44040192 8e Linux LVM
[root@cdh1 ~]# fdisk -l磁盘 /dev/xvdb:493.9 GB, 493921239040 字节,964689920 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc121d7db设备 Boot Start End Blocks Id System
/dev/xvdb1 2048 88082431 44040192 8e Linux LVM磁盘 /dev/xvda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0003755b设备 Boot Start End Blocks Id System
/dev/xvda1 * 2048 1026047 512000 83 Linux
/dev/xvda2 1026048 3131391 1052672 8e Linux LVM
/dev/xvda3 3131392 83886079 40377344 8e Linux LVM…… ……# 查看卷组名称及大小,需要记下 VG Name。例如这里的是 VolGroup,后面会用到这个卷组名
[root@cdh1 ~]# vgdisplay--- Volume group ---VG Name VolGroupSystem IDFormat lvm2Metadata Areas 1Metadata Sequence No 4VG Access read/writeVG Status resizableMAX LV 0Cur LV 3Open LV 3Max PV 0Cur PV 1Act PV 1VG Size 38.50 GiBPE Size 4.00 MiBTotal PE 9857Alloc PE / Size 9857 / 38.50 GiBFree PE / Size 0 / 0VG UUID faVyy5-8PQq-MN9X-RraY-LOgj-g9Iq-KQrMsg……# 创建卷。 从前面我们已经创建了一个新的分区:/dev/xvdb1
# 执行时如果报: Device /dev/xvdb2 not found.。此时需要重启系统:reboot
[root@cdh1 ~]# pvcreate /dev/xvdb1Physical volume "/dev/xvdb1" successfully created.# 扩展卷组 VolGroup
[root@cdh1 ~]# vgextend VolGroup /dev/xvdb1Volume group "VolGroup" successfully extended# 查看物理卷。注意看PV Name为/dev/xvdb1的信息,42GB已经创建出来
[root@cdh1 ~]# pvdisplay--- Physical volume ---PV Name /dev/xvda3VG Name VolGroupPV Size <38.51 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 9857Free PE 0Allocated PE 9857PV UUID uQLUzq-WiZg-YdPp-KNq1-cVdw-aTBc-ey3YWy--- Physical volume ---PV Name /dev/xvdb1VG Name VolGroupPV Size 42.00 GiB / not usable 4.00 MiBAllocatable yesPE Size 4.00 MiBTotal PE 10751Free PE 10751Allocated PE 0PV UUID JagRJV-FXfW-BcWx-vweZ-kPQz-7goT-COX2MH
……# 从前面(df -hl)我们可以看到/var对应的是/dev/mapper/VolGroup-var
# 查看当前逻辑卷的名称及空间大小。
[root@cdh1 ~]# lvdisplay--- Logical volume ---LV Path /dev/VolGroup/rootLV Name rootVG Name VolGroupLV UUID 2f6zN4-wlsI-6JKt-9B5d-fDDm-cudJ-gus6RBLV Write Access read/writeLV Creation host, time localhost, 2018-03-29 10:32:45 +0800LV Status available# open 1LV Size <24.51 GiBCurrent LE 6274Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:0--- Logical volume ---LV Path /dev/VolGroup/varLV Name varVG Name VolGroupLV UUID Dzr2iB-N6f3-Edv0-bXOj-OTDI-pibv-jCTuCYLV Write Access read/writeLV Creation host, time localhost, 2018-03-29 10:32:46 +0800LV Status available# open 1LV Size 8.00 GiBCurrent LE 2048Segments 1Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:2--- Logical volume ---……--- Logical volume ---……# 扩展分区。var的逻辑卷为/dev/VolGroup/var,直接将42GB的分区扩展到var
[root@cdh1 ~]# lvextend /dev/VolGroup/var /dev/xvdb1Size of logical volume VolGroup/var changed from 8.00 GiB (2048 extents) to <50.00 GiB (12799 extents).Logical volume VolGroup/var successfully resized.# 调整文件系统大小
# 这个命令如法执行,执行下面的就行
#[root@cdh1 ~]# resize2fs -f /dev/VolGroup/var
#resize2fs 1.42.9 (28-Dec-2013)
#resize2fs: Bad magic number in super-block 当尝试打开 /dev/VolGroup/var 时找不到有效的文件系统超级块.
[root@cdh1 ~]# xfs_growfs /dev/VolGroup/var
meta-data=/dev/mapper/VolGroup-var isize=512 agcount=4, agsize=524288 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2097152, 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
data blocks changed from 2097152 to 13106176
您在 /var/spool/mail/root 中有新邮件# 查看分区。可以看到/dev/VolGroup/var逻辑分区扩展到了50.00 GiB
[root@cdh1 ~]# lvscanACTIVE '/dev/VolGroup/root' [<24.51 GiB] inheritACTIVE '/dev/VolGroup/var' [<50.00 GiB] inheritACTIVE '/dev/VolGroup/swap' [<6.00 GiB] inheritACTIVE '/dev/VolGroup00/consul' [1.00 GiB] inherit
# 用df查看系统磁盘信息,可以看到/var已经调整到了50G,已用降低到13%
[root@cdh1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup-root 25G 16G 9.5G 62% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 8.7M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/VolGroup-var 50G 6.7G 43.3G 13% /var
/dev/xvda1 497M 267M 231M 54% /boot
/dev/mapper/VolGroup00-consul 1014M 33M 982M 4% /consul
tmpfs 3.2G 0 3.2G 0% /run/user/1001
cm_processes 16G 0 16G 0% /run/cloudera-scm-agent/process
tmpfs 3.2G 0 3.2G 0% /run/user/0
3.3 扩展根节点容量
前面已经分出42GB,还剩大概418GB的可用空间,和前面一样将剩余的空间全部扩展到根节点。操作和前面基本相同
# 创建一个新分区,容量为剩下的全部
[root@cdh1 lib]# fdisk /dev/xvdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):n
Partition type:p primary (1 primary, 0 extended, 3 free)e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (88082432-964689919,默认为 88082432):
将使用默认值 88082432
Last 扇区, +扇区 or +size{K,M,G} (88082432-964689919,默认为 964689919):
将使用默认值 964689919
分区 2 已设置为 Linux 类型,大小设为 418 GiB命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
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)
正在同步磁盘。# 可以看到新增加的分区 /dev/xvdb2
[root@cdh1 lib]# fdisk -l
磁盘 /dev/xvdb:493.9 GB, 493921239040 字节,964689920 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc121d7db设备 Boot Start End Blocks Id System
/dev/xvdb1 2048 88082431 44040192 8e Linux LVM
/dev/xvdb2 88082432 964689919 438303744 8e Linux LVM
……# 创建卷。发现失败,此时重启系统
[root@cdh1 ~]# pvcreate /dev/xvdb2Device /dev/xvdb2 not found.
[root@cdh1 ~]# reboot
Connection to xx.xxx.x.xx closed by remote host.
Connection to xx.xxx.x.xx closed.
[root@cdh1 ~]# pvcreate /dev/xvdb2Physical volume "/dev/xvdb2" successfully created.# 扩展卷组
[root@cdh1 ~]# vgextend VolGroup /dev/xvdb2Volume group "VolGroup" successfully extended# 查看物理卷
[root@cdh1 ~]# pvdisplay--- Physical volume ---PV Name /dev/xvda3VG Name VolGroupPV Size <38.51 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 9857Free PE 0Allocated PE 9857PV UUID uQLUzq-WiZg-YdPp-KNq1-cVdw-aTBc-ey3YWy--- Physical volume ---PV Name /dev/xvdb1VG Name VolGroupPV Size 42.00 GiB / not usable 4.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 10751Free PE 0Allocated PE 10751PV UUID JagRJV-FXfW-BcWx-vweZ-kPQz-7goT-COX2MH--- Physical volume ---PV Name /dev/xvdb2VG Name VolGroupPV Size <418.00 GiB / not usable 3.00 MiBAllocatable yesPE Size 4.00 MiBTotal PE 107007Free PE 107007Allocated PE 0PV UUID nf2YjK-Kcp0-hxX3-QeUU-MuX2-EmG5-zzyIQK--- Physical volume ---……# 扩展分区。
[root@cdh1 ~]# lvextend /dev/VolGroup/root /dev/xvdb2Size of logical volume VolGroup/root changed from <24.51 GiB (6274 extents) to 442.50 GiB (113281 extents).Logical volume VolGroup/root successfully resized.# 调整文件系统大小
[root@cdh1 ~]# xfs_growfs /dev/VolGroup/root
meta-data=/dev/mapper/VolGroup-root isize=512 agcount=4, agsize=1606144 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=6424576, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3137, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 6424576 to 115999744# 查看分区。可以看到/dev/VolGroup/root逻辑分区扩展到了442.50 GiB
[root@cdh1 ~]# lvscanACTIVE '/dev/VolGroup/root' [442.50 GiB] inheritACTIVE '/dev/VolGroup/var' [<50.00 GiB] inheritACTIVE '/dev/VolGroup/swap' [<6.00 GiB] inheritACTIVE '/dev/VolGroup00/consul' [1.00 GiB] inherit# 用df查看系统磁盘信息
[root@cdh1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup-root 443G 11G 433G 3% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 8.7M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/xvda1 497M 267M 231M 54% /boot
/dev/mapper/VolGroup-var 50G 6.8G 44G 14% /var
/dev/mapper/VolGroup00-consul 1014M 33M 982M 4% /consul
tmpfs 3.2G 0 3.2G 0% /run/user/1001
cm_processes 16G 0 16G 0% /run/cloudera-scm-agent/process
tmpfs 3.2G 0 3.2G 0% /run/user/0
3.4 vgs扩展空间
# 1 查看当前的 vg 信息。通过 lsblk 如果看到某个盘已经新建了分区,并创建好了 vg
# 通过 vgs 查看总空间和可用空间,如果有可用空间可以直接扩展系统空间
[root@bogon current]# vgsVG #PV #LV #SN Attr VSize VFreevg_bg 5 1 0 wz--n- 9.09t 0vg_centos 1 4 0 wz--n- <930.00g <873.00g# 2 通过查看 pv 和 lv(也可以间接通过 lsblk 间接得到,默认情况下 / 对应的 name 列为 vg_centos-root , - 前面是 vg 后面是 lv 名)
# lvextend 扩展 90GB 到 /dev/vg名/lv名
[root@bogon usr]# lvextend -L +90G /dev/vg_centos/rootSize of logical volume vg_centos/root changed from 10.00 GiB (2560 extents) to 100.00 GiB (25600 extents).Logical volume vg_centos/root successfully resized.# 3 xfs 使用下面命令使生效。成功后可通过 df 命令查看
[root@shuke2 usr]# xfs_growfs /dev/vg_centos/root
meta-data=/dev/mapper/vg_centos-root isize=512 agcount=4, agsize=655360 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, 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
data blocks changed from 2621440 to 26214400
4 某些数据节点的根空间被占满的问题
Hadoop 集群随着存储的数据的增加,当空间不够的时候会进行磁盘空间的扩展,为了系统的稳定以及在极端情况下的数据恢复,一般都会将数据存储到单独的数据盘上,数据盘通过挂载到系统的某个文件夹上。
关于磁盘分区格式化与挂载等操作详见 1 节部分,重点是挂载到挂载点之后,记得修改 /etc/fstab
配置文件,如下:
# fstab文件(/etc/fstab)中添加如下信息
/dev/mapper/kudu-kudu /kudu xfs defaults,noatime,nodiratime 0 0
从上面我们可以看到,创建一个文件夹后,将盘挂载到了那个目录。问题就出现了,当集群运行过程中不断往 HDFS 上写入数据 ,DataNode 还会向那个目录中挂载的磁盘写入数据,假如现在突然报警发现系统的空间占用的很高,比如那个目录使用的系统的根挂载点空间,会发现根空间使用率非常高,甚至被占满,而我们数据和日志有不会占用系统的空间,令人困惑。
经过排查发现,原来是挂载在某个目录上的盘因为某些问题不可用了,而 DataNode 还会继续往配置的那个文件夹中写入数据(因为那个文件夹是用可用空间的),熟不知却开始占用系统空间。发现这个问题当然就是修复重新挂载那个盘。
修复前,先将改节点的 DataNode 服务关闭
# 挂载 sdf1 到 /hdfs/sdf 目录
# 却发现报如下错误:
# mount: mount /dev/sdf1 on /hdfs/sdf failed: Structure needs cleaning
mount /dev/sdf1 /hdfs/sdf# 于是,使用 xfs 的修复命令修复
# 当使用下面命令修复后还是无法挂载上,可加 -L 参数【谨慎使用 -L,因为可能会清除数据】
# xfs_repair -L /dev/sdf1
#
# 修复过程很漫长,需要好几个小时,可后台运行
xfs_repair /dev/sdf1
xfs_growfs /hdfs/sdf# 经过上面的命令修复之后还是无法挂载,
# 因此查看块设备
lsblk# 因为 HDFS 有多个副本,在允许格式化的情况下进行格式化
mkfs -t xfs /dev/sdf1
# 执行上面的命令可能会报如下的提示
# mkfs.xfs: /dev/sdf1 appears to contain an existing filesystem (xfs).
# mkfs.xfs: Use the -f option to force overwrite.
#
# 因此加上 -f 参数,再次执行
mkfs.xfs -f /dev/sdf1
# meta-data=/dev/sdf1 isize=512 agcount=4, agsize=122060672 blks
# = sectsz=4096 attr=2, projid32bit=1
# = crc=1 finobt=0, sparse=0
# data = bsize=4096 blocks=488242688, imaxpct=5
# = sunit=0 swidth=0 blks
# naming =version 2 bsize=4096 ascii-ci=0 ftype=1
# log =internal log bsize=4096 blocks=238399, version=2
# = sectsz=4096 sunit=1 blks, lazy-count=1
# realtime =none extsz=4096 blocks=0, rtextents=0# 重新格式化后,重新挂载
# 现在可以正常挂载
mount /dev/sdf1 /hdfs/sdf# 如果有备份的数据,
# 将数据拷贝到 /hdfs/sdf 下即可# 重启该节点 DataNode 服务
大数据环境中的系统磁盘的常见问题相关推荐
- 医疗大数据 隐私保护_大数据环境中的医疗数据隐私保护
本文通过对当前医疗大数据的研讨和应用现状的分析,深入讨论了大数据应用中可能存在的隐私保护问题,在此基础上对现有的防护技能和手段进行梳理,希望可以找到大数据环境下对医疗隐私数据的保护方法. 随着大数据时 ...
- 虚拟机linux如何扩大内存吗,如何扩大Vmware虚拟机中Ubuntu系统磁盘空间的方法
在虚拟机里安装系统,有时即会遇到初始分配的磁盘空间不够用的情况.如果是windows系统,则直接在虚拟机选项里扩容即可,但linux系统则没有这么简单.下面是整理的vmware下ubuntu系统磁盘扩 ...
- 大数据学习 - Linux系统操作入门
Linux学习目录 DAY01 1 VMware安装LinuxCentOS操作系统 2 配置网卡 3 学习基本指令 DAY02 1 用户的管理 1.1 操作指令 useradd usermod (与u ...
- 7、大数据中常见的文件存储格式以及hadoop中支持的压缩算法
Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...
- linux如何找大文件夹,Linux系统中如何查找大文件或目录文件夹的方法
Linux系统中如何查找大文件或文件夹的方法 在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整 ...
- macbook系统占用硬盘大_十大方法解决Mac“启动磁盘已满”!让你的Mac“飞起来”~~...
原标题:十大方法解决Mac"启动磁盘已满"!让你的Mac"飞起来"~~ 当你的Mac说磁盘已满时,这是什么意思? 其实这有两个坏消息: 1.很快你就会完全耗尽空 ...
- php 检查磁盘,window_Win7系统中关闭检查磁盘和扫描并修复提示的方法, Win7系统关闭“检查磁盘r - phpStudy...
Win7系统中关闭检查磁盘和扫描并修复提示的方法 Win7系统关闭"检查磁盘"和"扫描并修复"提示的技巧分享到这里,操作系统过程中会遇到"检查磁盘&q ...
- 关于大数据系统及Hadoop系统中的概念
什么是大数据 大数据(Big Data)姑且定义为无法被符合服务等级协议(service level agreement,SLA)的单台计算机处理或存储的任何数据集.理论上讲,单台计算机可以处理任意规 ...
- 无盘服务器读写缓存,无盘系统中实现网络磁盘本地写缓存控制的方法
1. 一种无盘系统中实现网络磁盘本地写缓存控制的方法,所述的无盘系统中包括通过 网络与远程服务器相连接的客户端,其特征在于,所述的方法包括以下步骤:(1)客户端进行启动和初始化操作:(2)客户端根据服 ...
最新文章
- input 的id 和name什么区别
- 【程序员】保持一颗虚心好学的心态去敲代码
- Makefile中=、:=、+=、?=的区别
- Java 9 接口私有方法
- Hbuilder开发app实战-识岁06-face++的js实现【完结】
- 震惊,线程共享变量使用不当引发血案
- 【webservice】Axis2 客户端调用 设置超时时间
- python过滤敏感词汇_Python过滤敏感词汇
- linux 终端复制剪贴板,命令行剪贴板复制和粘贴工具?
- 进程中出现n多的conime.exe怎么办
- 业务知识 - 结构化思维
- 鸿蒙音波萨顶顶,萨顶顶把古代论文唱成歌,撒贝宁评价:“最难合作的艺人之一”...
- javaScript和html的区别与联系
- python统计中文字符_使用 Python 统计中文字符的数量
- pyLDAvis3.3.1 报错 OSError: [Errno 22] Invalid argument: ‘https://cdn.jsdelivr.net/gh/bmabey/pyLDAvis@
- vue入门教程(一)
- ubuntu使用dd命令制作系统盘
- 基于 keda事件驱动在Kubernete 集群上的弹性自动缩放应用
- 基于另一个单元格值的条件格式
- AVPro 插件发布安卓平台后没声音 使用(流路径播放)