vmware使用实践总结
- 技巧一、在线添加硬盘
- 技巧二、lvm脚本挂载硬盘
技巧一、在线添加硬盘
适用于不重启vmware虚拟机添加硬盘
首先控制台新加一块100G的硬盘
此时虚拟机内部是识别不到的,lsblk查看如下
不重启的情况下,采用如下方案
步骤一、查找主机总线编号
[root@localhost ~]# ls /sys/class/scsi_host/
host0 host1 host2
如果虚拟机正在运行,您可能需要重新扫描SCSI总线来使新磁盘立即生效。这可以通过执行以下命令来完成
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan #查看哪个host是新增的
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 45M 0 rom
sr1 11:1 1 3.7G 0 rom
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 27.8G 0 part /
└─sda3 8:3 0 2G 0 part [SWAP]
sdb 8:16 0 100G 0 disk
技巧二、lvm脚本挂载硬盘
#!/bin/bash
# 检查 vdb 是否已经分区,如果没有分区则进行分区
if ! lsblk /dev/vdb | grep -q "vdb1"; then
echo "分区 vdb 磁盘..."
parted /dev/vdb --script mklabel gpt
parted /dev/vdb --script mkpart primary 0% 100%
# 同步分区表
partprobe /dev/vdb
fi
# 创建物理卷
echo "创建物理卷 /dev/vdb1..."
pvcreate /dev/vdb1
# 创建卷组(VG)
VG_NAME="data_vg"
if ! vgdisplay $VG_NAME > /dev/null 2>&1; then
echo "创建卷组 $VG_NAME..."
vgcreate $VG_NAME /dev/vdb1
fi
# 创建逻辑卷(LV)
LV_NAME="data_lv"
if ! lvdisplay /dev/$VG_NAME/$LV_NAME > /dev/null 2>&1; then
echo "创建逻辑卷 $LV_NAME..."
lvcreate -l 100%FREE -n $LV_NAME $VG_NAME
fi
# 格式化为 xfs 文件系统
echo "格式化逻辑卷 /dev/$VG_NAME/$LV_NAME 为 xfs..."
mkfs.xfs /dev/$VG_NAME/$LV_NAME
# 创建挂载点并挂载逻辑卷
MOUNT_POINT="/data"
if [ ! -d "$MOUNT_POINT" ]; then
echo "创建挂载点 $MOUNT_POINT..."
mkdir -p $MOUNT_POINT
fi
echo "挂载逻辑卷到 $MOUNT_POINT..."
mount /dev/$VG_NAME/$LV_NAME $MOUNT_POINT
# 获取逻辑卷的 UUID 并将其写入 /etc/fstab 实现自动挂载
UUID=$(blkid -s UUID -o value /dev/$VG_NAME/$LV_NAME)
if ! grep -q "$UUID" /etc/fstab; then
echo "配置自动挂载到 /etc/fstab..."
echo "UUID=$UUID $MOUNT_POINT xfs defaults 0 0" >> /etc/fstab
fi
echo "LVM 配置完成并挂载到 $MOUNT_POINT。"