文章目录
- 一、什么是硬盘挂载
- 二、linux 修改某个磁盘挂载到新目录
- 三、Esxi下扩容硬盘
- 1. 判断一个已有的文件系统是否使用了LVM(逻辑卷管理)
- 2. 原本文件系统没有使用lvm,还可以lvm扩容吗?
- 3. 原有文件系统使用lvm场景下扩容(lvm扩容)
- 了解LVM
- Esxi LVM扩容步骤
- 4. 过程中遇到的问题
- Esxi虚拟机磁盘扩容失败,提示“设备“3”的操作无效”
一、什么是硬盘挂载
在Linux操作系统中,挂载硬盘是将硬盘的分区或者整个硬盘与文件系统关联起来,使得我们可以通过文件系统访问硬盘中的数据。
- 确认硬盘信息
fdisk -l
该命令会列出所有已连接到系统的硬盘设备及其分区信息。根据输出结果找到你要挂载的硬盘设备,记下设备路径,例如/dev/sda
- 新硬盘的话,需要创建新的磁盘分区
- 我们可以整个硬盘就使用一个分区:
fdisk /dev/sda
依次输入 n:新建分区
p:主分区
在按p,查看分区
我们的硬盘是/dev/sda 分区出来一个分区叫 /dev/sda1。
- 分区结束后,我们需要对这个分区,设置文件系统格式:
在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。
在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。
例如,若要创建一个ext4文件系统,只需要运行以下命令
mkfs.ext4 /dev/sda1
- 创建挂载点
挂载点是一个目录,用于将硬盘与文件系统关联起来。可以选择一个合适的目录作为挂载点。
例如,我们可以在/mnt目录下创建一个名为data的目录作为挂载点:
mkdir /mnt/data
- 挂载硬盘
sudo mount /dev/sda1 /mnt/data
- 自动挂载
如果你希望每次系统启动时都自动挂载硬盘,可以在/etc/fstab文件中添加一条挂载信息。打开该文件并在末尾添加以下内容
/dev/sda1 /mnt/data ext4 defaults 0 0
其中,/dev/sda1是你要挂载的硬盘设备路径,/mnt/data是你创建的挂载点路径,ext4是硬盘的文件系统类型,defaults是挂载选项,0 0表示不进行备份和检查。保存文件后,下次系统启动时硬盘将会自动挂载到指定的挂载点上。
二、linux 修改某个磁盘挂载到新目录
输入 fdisk -l 命令,查看当前系统的磁盘分区情况。
fdisk -l
mkdir -p /opt/aptos/data
df -h
umount /mnt/datadisk0
mount /dev/vdb /opt/aptos/data
df -h
vi /etc/fstab
修改为
/dev/vdb /opt/aptos/data ext4 defaults 0 0
进行挂载
mount -a
df -h
三、Esxi下扩容硬盘
Esxi下扩容硬盘,需要先判断原有文件系统是否使用了LVM(逻辑卷管理),如果使用LVM,可以直接在原磁盘的基础上直接扩容。
否则推荐,添加新硬盘,通过挂载到某个目录方式扩容,这样比较安全。
总结:
在 ESXi 下扩容硬盘时:
- 如果原有文件系统使用了 LVM,则可以直接在原有磁盘组上扩容逻辑卷和文件系统,操作相对简单。
- 如果原有文件系统没有使用 LVM,则不建议直接在其分区上扩容,因为存在数据迁移风险。
推荐的更安全做法是:
- 添加新磁盘
- 在新磁盘上创建文件系统
- 将新文件系统挂载到某个目录,用来提供额外空间
- 这样可以避免对原有文件系统进行危险的迁移操作
- 也可以通过 symbolic link 将新挂载点链接到适当位置,以方便使用
总之,如果没有 LVM,在已有文件系统直接扩容是有风险的。添加新磁盘并挂载的做法更为稳妥。
1. 判断一个已有的文件系统是否使用了LVM(逻辑卷管理)
- 使用 lsblk 命令
LVM的卷组和逻辑卷会显示为类似"lvm"的TYPE类型。 - 使用 pvdisplay、vgdisplay、lvdisplay等命令
如果显示了LVM的详细信息,则说明正在使用LVM。、
2. 原本文件系统没有使用lvm,还可以lvm扩容吗?
如果原先的文件系统没有使用 LVM (逻辑卷管理),还是可以通过创建 LVM 并移动数据的方式来实现扩容的。
步骤如下:
- 使用 pvcreate 在新磁盘上创建物理卷
- 使用 vgcreate 创建卷组,将新建的物理卷加入进去
- 使用 lvcreate 在卷组上创建逻辑卷,大小大于原有文件系统的大小
- 使用 mkfs 在新建逻辑卷上创建文件系统
- 将原有文件系统中的数据临时备份到其他位置
- 使用 mount 将新文件系统挂载到原来的挂载点
- 将备份的数据恢复到新文件系统
- 编辑 /etc/fstab,使用新逻辑卷的设备路径来挂载原位置
- 重启系统生效
通过这种方式,可以为原先的文件系统增加更大的存储,实现扩容的目的。
需要注意的是,这个过程会暂时中断对原文件系统的访问。所以需要谨慎操作,在用户访问较少的时间段进行。而且需要提前做好数据备份,避免数据丢失。
如果条件允许,**在一开始搭建文件系统时就使用 LVM **是更好的选择,可以避免后期做数据迁移来扩容。
原先未使用 LVM 的文件系统来说,想要实现扩容就需要进行数据迁移,存在一定的风险:
- 数据迁移风险
扩容需要将原有文件系统的数据临时迁移到其他位置,然后再复制回新文件系统。在这个复制的过程中,如果操作不当,可能会导致数据丢失或损坏。 - 文件系统损坏风险
在迁移过程中,原有的文件系统是处于未挂载状态,如果在这个时候发生断电等问题,可能会导致文件系统损坏,无法重新挂载。
为了降低风险,在进行这种扩容之前,必须要做好完整备份数据,并经过验证确保备份可工作。
如果不具备上述条件,不建议在生产环境中直接进行扩容,而应该考虑重新部署使用 LVM 的新文件系统。
3. 原有文件系统使用lvm场景下扩容(lvm扩容)
了解LVM
LVM是一个逻辑卷管理器,它允许我们将多个物理存储空间(硬盘、分区等)组合成一个或多个逻辑卷,并对逻辑卷进行管理。LVM的核心概念包括物理卷(Physical Volume)、卷组(Volume Group)和逻辑卷(Logical Volume)。
物理卷是硬盘或硬盘分区,可以用作LVM的物理存储单元。
卷组是由一个或多个物理卷组成的逻辑单元,我们可以在卷组中创建和管理逻辑卷。
逻辑卷是从卷组中划分出来的逻辑存储单元,它们可以被格式化为文件系统,用于存储数据。
通过使用LVM,我们可以在不重新分区或重新格式化硬盘的情况下动态地扩展磁盘空间。
Esxi LVM扩容步骤
步骤1. 登录Esxi web ui
步骤2. 点击“编辑虚拟机设置”选项,打开虚拟机设置页。
步骤3. 进行磁盘设置
对原有磁盘大小进行设置,从 100GB 编辑为 2T,点击扩展按钮。
步骤4. 查看磁盘分区表
命令:
fdisk -l
注意看,我们是原有硬盘直接扩容,这里,可以看到已经几个分区了,比如已经有分区 sda1 和 sda2、sda3.
- 使用 fdisk新磁盘上创建分区
fdisk /dev/sda
- 输入 m 查看帮助信息,
- 再输入 n(表示增加分区),
- 回车后输入 p(创建主分区),
- 回车后 partition number 输入4(查看之前
fdisk -l
命令结果,假如已经有两个分区 sda1 和 sda2、sda3), - 回车会提示输入分区的 start 值,默认即可,
- 回车会提示输入分区的 end 值,默认即可(即当前最大值),
- 回车后输入 w 进行保存,
分区划分完毕,如下多了1个分区:
- 修改分区ID
默认创建的分区类型id是83,83是标准Linux文件系统分区,8e是LVM分区。将分区类型改为8e意味着计划在这个分区上使用LVM。
查看某个分区的类型ID
lsblk -o NAME,FSTYPE /dev/sda4
当 FSTYPE 为空时,说明这个分区还没有建立文件系统或者文件系统类型无法识别。
我们可以通过一些其他命令进一步确定这个分区的类型:
使用 blkid 命令看 TYPE 字段:
# blkid /dev/sda4
/dev/sda4: PARTUUID="6e4b82a8-3b07-0c49-8755-efe4b76ce048"
根据blkid命令的输出,/dev/sda4这个分区没有显示文件系统类型,只显示了PARTUUID。
这表示该分区还没有建立任何文件系统。
如果想建立文件系统,可以:
sudo mkfs.ext4 /dev/sda4
这将在sda4分区创建ext4文件系统。
之后再次运行blkid命令,就可以看到文件系统类型了。
既然该分区还没有建立文件系统,我们需要先将其设置为 LVM 分区类型:
sudo fdisk /dev/sda
# 进入fdisk分区编辑模式Command (m for help): t
# 输入t进入修改分区类型子命令Partition number (1-4): 4
# 输入要修改的分区号,这里是4Hex code (type L to list codes): 8e
# 输入新分区类型的16进制代码,这里是8e
注意:Ubuntu 20.04默认的fdisk确实不支持将分区类型设置为8e(Linux LVM)。
Ubuntu会在初始化物理卷(pvcreate /dev/sda4
)时自动把分区类型改为8e,不需要做这一步骤。
- 使用 pvcreate 在新分区上创建物理卷
显示逻辑卷分区信息:
命令:
lvs
显示卷组信息:
命令:
vgdisplay
将物理硬盘分区初始化为物理卷,以便被 LVM 使用。
命令:
pvcreate /dev/sda4
注意:要创建物理卷必须首先对硬盘进行分区,并且将硬盘分区的类型设置为“8e”后,才能使用pvcreat指令将分区初始化为物理卷。
- 使用 vgextend 将新物理卷扩展到已有的卷组中
一旦我们添加了新的物理卷,我们可以将其添加到现有的卷组中,以扩展卷组的容量。可以使用以下命令将新的物理卷添加到卷组中:
扩展卷组: {VG Name} vgdisplay 查到的 VG Name
命令:vgextend {VG Name} /dev/sda4
比如:我查看通过刚才的命令vgdisplay
,查到的vg名字是:ubuntu-vg,扩容该vg命令如下:
vgextend ubuntu-vg /dev/sda4
- 使用 lvextend 将卷组上的逻辑卷扩展到需要的大小
lvextend -L +100%FREE /dev/ubuntu-vg/ubuntu-lv
- +100%FREE表示扩展逻辑卷的空间为当前卷组的全部剩余空间
- 要指定逻辑卷完整路径,也就是卷组+逻辑卷名,例如/dev/ubuntu-vg/ubuntu-lv
这会自动使用ubuntu-vg卷组全部剩余空间来扩展ubuntu-lv逻辑卷。
因为我们扩展的vg, 已经有一部分vg已经被使用,这里 使用 +100FREE 会报错,我们可以使用 vgdisplay 查看剩余空间,具体指定要扩容多大,例如:
lvextend -L +1.9T /dev/ubuntu-vg/ubuntu-lv
- 使用 resize2fs 或 xfs_growfs 扩展文件系统的大小、
在使用 lvextend 命令扩展 LVM 逻辑卷大小之后,你还需要对文件系统进行扩容才能真正使用新增的空间
resize2fs 命令就是用于扩展 ext2/ext3/ext4 文件系统的大小。
命令用法是:
resize2fs /dev/ubuntu-vg/ubuntu-lv
这里指定的是逻辑卷的完整路径,而不是卷组名字。
执行这个命令将会把文件系统大小扩展到逻辑卷的新的大小。
- 验证扩容后的容量
df -h