Dute.me: 独一无二的GoDaddy优惠码

如何对阿里云ECS服务器(Linux系统)的数据盘进行分区及挂载?

如何对阿里云ECS服务器(Linux系统)的数据盘进行分区及挂载?

在购买阿里云 ECS 服务器时,如果单独选购了数据盘,那么,需要对数据盘进行分区,然后把数据盘挂载到系统指定位置,才能使用我们购买的数据盘。本文将详细介绍如何对 ECS 实例的数据盘进行单分区,以及如何挂载到 Linux 文件系统。

注:本文针对的是运行 Linux 操作系统的 ECS 实例,不适用于 Windows 系统。如需了解 Windows 系统下的磁盘格式化操作,请参考本站教程:阿里云 Windows 服务器的数据盘分区及格式化

由于大容量数据盘的分区操作不一样,因此,本文将分别介绍云盘容量小于(等于) 2TiB 的情况和容量大于 2TiB 时的分区操作步骤。

数据盘容量小于(等于) 2TiB 的分区操作

众所周知,对数据盘进行分区和格式化是高风险行为,建议在操作之前,确保您磁盘上的所有数据均做好了备份,或者,对数据盘创建快照,以避免数据丢失。因此,请务必慎重操作(建议大家使用一块新的云盘来操作以下步骤)。

另外,需要注意的是,云服务器 ECS 仅支持对 数据盘 进行分区,而不支持对 系统盘 进行分区(也不建议对系统盘进行分区)。本文所介绍的方法和步骤也是针对服务器的数据盘分区,而非系统盘。如果您强行使用第三方工具对服务器的系统盘进行分区操作,可能会导致系统崩溃、网络异常、数据丢失以及服务不可用等不可预期的结果。

本节教程使用的操作环境如下:

  • 实例:I/O优化实例
  • 操作系统:CentOS 6.8 (64位)
  • 文件系统:ext3
  • 数据盘:20 GiB
  • 设备名:/dev/xvdb

如何查看数据盘的设备名?

首先,登录阿里云账号,然后执行以下操作:

  1. 依次点击 控制台 -> 云服务器 ECS -> 实例 菜单,进入实例列表
  2. 然后点击 实例ID/名称 链接,进入 ECS 实例详情
  3. 点击左边 本实例磁盘 菜单,进入磁盘列表页面
  4. 在磁盘列表,点击 磁盘ID/磁盘名称,进入 磁盘详情 页面
  5. 找到 磁盘挂载信息 信息区域,即可查看当前 ECS 实例的数据盘 设备名
    如下图所示:
在 ECS 控制台查看磁盘的设备名称
在 ECS 控制台查看磁盘的设备名称

在上图,我们看到的磁盘设备名是 /dev/xvdb,这是系统默认分配的设备名称,从 xvdb 开始,依次往后顺序排列,直到 /dev/xvdz

有了以上的铺垫,下面我们来一起看看数据盘分区的具体步骤。

1、连接远程实例

这一步,您可以使用阿里云ECS管理控制台提供的Web界面来登录您的ECS实例,也可以使用自己电脑上的终端来连接远程实例。在这里,我使用的是自己电脑上的「终端」应用程序来登录ECS实例(我使用的是 Macbook Pro 笔记本,macOS 系统自带终端应用)。

运行命令:ssh root@121.**.**.**@ 后面的IP地址,请输入您服务器的实际IP地址),然后输入 root 用户密码,登陆后,如下图所示:

在终端通过 ssh 命令登录远程服务器
在终端通过 ssh 命令登录服务器

注:作为演示,我这里使用的是 root 用户登录 ECS,在实际的运维过程中,应避免使用 root 用户作为日常运维操作。

2、查看数据盘

运行 fdisk -l 命令,查看当前登录的 ECS 实例是否有数据盘。

  • 如果执行命令后,没有发现 /dev/vdb,表示当前实例没有数据盘,无需进行格式化操作。
  • 如果命令执行结果显示的是 dev/xvd?,表示您使用的是非I/O优化实例(其中 ? 是 a-z 中的其中任一个字母)

3、创建单分区数据盘

创建单分区数据盘步骤如下:

  1. 执行 fdisk /dev/vdb 命令对数据盘进行分区。
  2. 在命令行中输入 n 并按回车键,创建一个新分区。
  3. 由于我们创建的是单分区数据盘,只需创建主分区即可;因此,在命令行中输入 p 并按回车键。

    注:如果要创建 4 个以上的分区,您应该创建至少一个扩展分区,即选择 e

  4. 输入分区编号并按回车键。因为这里仅创建一个分区,我们在这里可以输入 1
  5. 输入第一个可用的扇区编号,可接受的编号范围是 1-41610。我们在这里使用默认值 1 作为第一个可用的扇区编号,然后按下回车键。
  6. 输入最后一个扇区编号,可接受的编号范围是 1-41610。因为我们仅创建一个分区,所以直接按回车键使用系统提供的默认值 41610

最后,输入 wq 并按回车键,开始分区(命令 wq 表示 Write & Quit 的意思,即保存并退出)。

整个过程如下图所示:

使用 fdisk 命令创建新分区
使用 fdisk 命令创建新分区

4、查看新的分区

在执行了上面第3步之后,运行 fdisk -l 命令,来查看我们刚才的分区结果。如果出现以下信息,说明已经成功创建了新分区 /dev/vdb1

使用 fdisk -l 命令查看分区结果
使用 fdisk -l 命令查看分区结果

5、创建文件系统

我们要创建一个 ext3 文件系统,执行命令:mkfs.ext3 /dev/vdb1 即可创建 ext3 文件系统。创建过程如下图所示:

使用 mkfs.ext3 命令创建 ext3 文件系统
使用 mkfs.ext3 命令创建 ext3 文件系统

注:创建文件系统所需时间取决于当前数据盘大小。

6、写入新分区信息

系统分区信息是存放在 /etc/fstab 文件里面的,在写入新的分区信息前,我们对 /etc/fstab 文件先进行备份。运行 cp /etc/fstab /etc/fstab.bak 命令,复制一份 fstab 文件。备份之后,现在可以向 /etc/fstab 文件写入新分区信息了。

运行命令 echo /dev/vdb1 /mnt ext3 defaults 0 0 >> /etc/fstab 把内容追加到 fstab 文件里面。

说明:

  1. 上面命令中的 /mnt 表示挂载点路径,如果需要把数据盘单独挂载到某个文件夹,请将 /mnt 替换成您期望的路径
  2. 上面这个命令的 >> 操作符,表示追加内容(而不是覆盖)。

现在,我们使用 cat /etc/fstab 命令,来查看刚才写入的分区信息,如下图所示:

查看 /etc/fstab 分区信息
查看 /etc/fstab 分区信息

什么是 fstab 文件?
fstab 文件包含了服务器的存储设备及其文件系统的信息,它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的文件。为了避免破坏系统原始 fstab 文件,我们在这里对其进行备份。

7、挂载文件系统

分区之后,需要把数据盘挂载到指定的路径。运行命令 mount /dev/vdb1 /mnt 即可完成挂载。

为了确定数据盘是否挂载成功,可以运行 df -h 命令,查看磁盘使用情况。如果列出的磁盘明细出现新的文件系统信息,则说明我们挂载成功,数据盘可以开始使用了。

运行 df -h 命令后,运行结果如下:

使用 df -h 命令查看磁盘使用情况
使用 df -h 命令查看磁盘使用情况

小结

以上内容是容量小于 2TiB 数据盘分区/挂载的所有步骤,其核心操作是使用 fdisk 命令在数据盘上创建新分区,然后往 /etc/fstab 文件中写入新的分区信息,最后,使用 mount 命令完成磁盘挂载。

数据盘容量大于 2TiB 的分区操作

对于大容量数据盘(通常指容量大于 2TiB 的磁盘),必须采用 GPT 分区形式(GUID Partition Table)。对于 Linux 系统,大容量数据盘支持的分区工具是 parted,支持的文件系统包括 ext4xfs 文件系统。

本节教程使用的操作环境及工具如下:

  • 分区工具:parted 和 e2fsprogs
  • 操作系统:CentOS 7.4 (64位)
  • 文件系统:ext4
  • 数据盘:3 TiB
  • 设备名:/dev/vdd

注:在进行分区操作之前,请确保您的系统已经安装了 partede2fsprogs 工具。

安装命令如下:

  • parted 工具安装命令:yum install -y parted
  • e2fsprogs 工具安装命令:yum install -y e2fsprogs

在分区之前,需要查看数据盘是否存在(使用 fdisk -l 命令),具体方法请参考上面 查看数据盘 一节的内容,这里不再赘述。

以下是对大容量云盘进行分区的完整过程。

1、使用 parted 创建分区表

首先,运行命令 parted /dev/vdd 进入命令行交互模式,接下来,依次执行以下操作:

  • 运行命令 mklabel gpt,将 MBR 分区形式转为 GPT 分区形式
  • 运行命令 mkpart primary ext4 <StartSector> <EndSector>,创建一个采用 ext4 文件系统的主分区,并设置分区的开始位置和结束位置。如果一个数据盘只分一个分区,则运行命令 mkpart primary ext4 0 -1
  • 运行 print 命令,查看分区表

执行 print 命令后,结果如下:

parted print 命令运行结果
parted print 命令运行结果

最后,输入 quit 退出 parted 工具的交互模式。

MBR 分区表和 GPT 分区表的区别:

  • MBR 分区表:MBR 是 Main Boot Record 的缩写,表示主引导记录。它支持的最大容量是 2TB,而且,它最多只能划分4个主分区或3个主分区加一个扩展分区
  • GPT 分区表:GPT 是 GUID Partition Table 的缩写,意思是 GUID 分区表。它支持的最大容量是 18EB(1EB=1024TB),每个磁盘最多支持128个分区

因此,如果要对大于2TB的磁盘进行分区,就必须使用 GPT 分区表。

2、重读分区表

运行命令 partprobe,使系统重读分区表。

注:partprobe 命令用于重读分区表,当出现删除文件后,出现仍然占用空间。可以partprobe在不重启的情况下重读分区。

3、创建 ext4 文件系统

运行以下命令,创建一个 ext4 文件系统,并使 /dev/vdd1 分区使用 ext4

mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/vdd1

说明:如果要创建一个 xfs 文件系统,请运行 mkfs -t xfs /dev/vdd1 命令。

4、挂载文件系统

首先,创建一个文件夹,作为挂载点:mkdir /test。该命令将在系统根目录下创建一个名为 test 的文件夹,作为我们的磁盘挂载点;然后,运行 mount /dev/vdd1 /test 命令,将分区 /dev/vdd1 挂载到 /test 目录。

执行完上述操作后,运行 df -h 命令,查看当前磁盘空间及使用情况,运行效果如下:

使用 df -h 命令查看磁盘使用情况(大容量磁盘)
使用 df -h 命令查看磁盘使用情况(大容量磁盘)

当然,您仍然可以向 /etc/fstab 文件写入新的分区信息,操作方法和上面 写入新分区信息 一样,只是这时写入命令要修改为 echo /dev/vdd1 /test ext4 defaults 0 0 >> /etc/fstab

查看 /etc/fstab 文件,如果输出的结果里面出现了写入的新分区信息,则说明写入成功。

至此,我们就完成了对一个 3 TiB 数据盘的分区及挂载操作。

小结

对于大容量磁盘的分区(超过 2TiB),我们不能再使用 fdisk 命令,因为 fdisk 只能划分小于 2TiB 的磁盘。因此,我们使用了 parted 工具来对超过 2TiB 的云盘进行分区。在使用 parted 分区时,要注意必须采用 GPT 分区形式,因为它支持的最大容量是 18EB。另外需要强调的是,对大容量磁盘分区,我们一般采用 ext4xfs 文件系统。

感谢阅读,希望对您有帮助!