一块全新的云盘挂载到ENS实例后,还不能直接存储数据,您需要为云盘创建分区、挂载文件系统等初始化操作后才可以正常使用。
注意事项
初始化云盘是高风险行为,请慎重操作。
初始化仅适用处理一块全新的数据盘,如果您的数据盘上有数据,请务必为数据盘创建快照,避免数据丢失。
您仅需要对数据盘执行初始化操作,系统盘无需执行初始化操作。如果您强行使用第三方工具对系统盘做初始化操作,可能引发系统崩溃和数据丢失等未知风险。您可以在扩容系统盘后做扩展分区或者新增分区操作。具体操作,请参见扩展分区和文件系统_Linux系统盘。
操作场景
当新建边缘云ENS实例时设定的系统盘容量与系统盘镜像容量相同时,系统已经自动为系统盘分区并挂载文件系统,因此系统盘无需初始化。
当新建边缘云ENS实例时设定的系统盘容量大于系统盘镜像容量时,需要对系统盘多余空间进行初始化操作。
数据盘(随实例创建):随实例一起创建的数据盘已自动挂载到ENS实例,无需手动挂载,直接执行初始化操作。
数据盘(单独购买):必须先挂载到ENS实例后,然后执行初始化操作。
如果您的整块云盘只呈现为一个独立的分区(例如:/dev/vdb
),不需要划分逻辑分区(例如:/dev/vdb1
、/dev/vdb2
等),云盘初始化时直接在云盘上创建文件系统即可。
操作示例
Linux数据盘初始化
本示例以CentOS7.9操作系统为例。
登录ENS实例并查看数据盘
远程连接ENS实例。
运行以下命令,获取数据盘的设备名称。
sudo fdisk -lu
示例的运行结果如下所示,表示当前ECS实例挂载了三块云盘:
/dev/vda
是系统盘,随实例创建的系统盘已默认初始化,无需再初始化。/dev/vdb
、/dev/vdc
为新增数据盘。
为数据盘创建GPT分区
运行以下命令,安装Parted工具。
sudo yum install -y parted
使用Parted工具对数据盘进行分区。
运行以下命令,开始分区。本操作以数据盘
/dev/vdb
为例。sudo parted /dev/vdb
其中,
/dev/vdb
是待分区数据盘的设备名称,请您根据实际环境替换。在Parted交互命令行输入以下内容,设置分区格式为GPT分区。
mklabel gpt
输入以下内容,划分分区,并设置分区的开始位置和结束位置。
mkpart <分区名称> <初始位置> <结束位置>
重要分区的开始位置和结束位置请使用二进制单位MiB、GiB等(创建后分区会4KiB对齐)单位,否则会影响分区对齐,严重影响云盘性能。
<分区名称>、<初始位置>、<结束位置>请根据实际情况进行划分。
单分区示例:以划分一个主分区、分区名为primary,开始位置为1MiB,100%容量给到第一个分区为例。
mkpart primary 1MiB 100%
多分区示例:以划分两个分区、第一个分区名为primary,分区容量为20GiB,剩余容量划分至第二个分区secondary为例,需要分别执行:
mkpart primary 1MiB 20GiB mkpart secondary 20GiB 100%
运行以下命令,检查分区是否对齐。
其中,
1
是对应的分区号,通常建议您做分区对齐,以获取更好的云盘性能。align-check optimal 1
如果分区是对齐的,结果如下所示:
1 aligned
输入以下内容,查看分区表。
print
(可选)如果上述分区操作有误,请输入rm+分区号,删除错误分区,再按照需求执行c~e。
重要请在删除分区前,确保分区内无数据或者数据已备份。
输入以下内容,退出Parted工具。
quit
运行以下命令,使系统重读分区表。
partprobe
运行以下命令,查看新分区信息。本操作以数据盘
/dev/vdb
为例。sudo fdisk -lu /dev/vdb
其中,
/dev/vdb
是数据盘的设备名称,请您根据实际环境替换。运行结果如下所示,如果
Disk label type
为gpt,表示新分区已创建完成。
创建并挂载文件系统
无论云盘是否进行了分区,云盘在使用前都需要创建并挂载文件系统,才能被操作系统识别并正常使用。不同文件系统支持的分区大小不同,请您根据实际需求创建文件系统。
运行以下命令,安装e2fsprogs工具。
sudo yum install -y e2fsprogs
说明此步骤中yum命令适用于CentOS等Linux发行版本。其他Linux发行版本,请根据实际使用的包管理软件修改安装命令。例如Debian或Ubuntu,请使用
apt-get install <软件包名称>
。运行以下命令,创建文件系统。以下示例命令介绍如何创建ext4和xfs文件系统。
创建ext4文件系统
以为分区
/dev/vdb1
创建一个ext4文件系统为例,则运行如下命令:sudo mkfs -t ext4 /dev/vdb1
其中,
/dev/vdb1
是数据盘的分区名称,请您根据实际分区名称替换。以为裸设备
/dev/vdc
创建一个ext4文件系统为例,则运行如下命令:sudo mkfs -t ext4 /dev/vdc
其中,
/dev/vdc
是裸设备名称,请您根据实际裸设备名称替换。sudo
创建xfs文件系统
以分区
/dev/vdb1
创建一个xfs文件系统为例,则运行如下命令:sudo mkfs -t xfs /dev/vdb1
其中,
/dev/vdb1
是数据盘的分区名称,请您根据实际分区名称进行替换。以为裸设备
/dev/vdc
创建一个xfs文件系统为例,则运行如下命令:sudo mkfs -t xfs /dev/vdc
其中,
/dev/vdc
是裸设备名称,请您根据实际裸设备名称进行替换。
运行以下命令,挂载文件系统。
以将分区
/dev/vdb1
挂载到/mnt目录为例,则运行如下命令:sudo mount /dev/vdb1 /mnt
/dev/vdb1
是数据盘的分区名称,请您根据实际环境替换。/mnt
是分区的挂载点。挂载点可以是无数据的已有目录,或执行sudo mkdir -p <新目录>
命令创建新目录作为挂载点,例如sudo mkdir -p /data
。以将裸设备
/dev/vdc
挂载到/tmp目录为例,则运行如下命令:sudo mount /dev/vdc /tmp
/dev/vdc
是裸设备名称,请您根据实际环境替换。/tmp
是分区的挂载点。挂载点可以是无数据的已有目录,或执行sudo mkdir -p <新目录>
命令创建新目录作为挂载点,例如sudo mkdir -p /data
。
运行以下命令,检查挂载结果是否符合您的预期。
df -Th
配置开机自动挂载分区
您可以根据需要在/etc/fstab
中写入新分区信息,配置开机自动挂载,以确保系统每次启动时会自动挂载云盘分区。
运行以下命令,备份
/etc/fstab
文件。sudo cp /etc/fstab /etc/fstab.bak
在
/etc/fstab
里写入新分区信息。sudo sh -c "echo `blkid /dev/vdb1 | awk '{print \$2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab"
其中:
/dev/vdb1
:数据盘的分区名称,您需要根据实际环境进行替换(通过df -Th
命令获取)。/mnt
:分区的挂载点,您需要根据已设置的挂载点进行替换(通过df -Th
命令获取)。ext4
:分区的文件系统类型,您需要根据已创建的文件系统类型进行替换(通过df -Th
命令获取)。defaults
:文件系统的挂载参数。您可以根据实际需求选择对应的挂载参数,请参见fstab说明。
运行以下命令,查看
/etc/fstab
中的新分区信息。cat /etc/fstab
结果如下所示,返回结果里出现了新分区信息,说明写入成功。
运行以下命令,验证自动挂载功能是否生效。
sudo umount /dev/vdb1 sudo mount -a mount | grep /mnt
Windows数据盘初始化
操作步骤
远程连接ENS实例。
在Windows Server桌面,右键单击图标,然后单击磁盘管理。
找到待初始化的数据盘(本示例以磁盘 1为例),其处于脱机状态。
右键单击磁盘 1的空白区域,选择联机。
完成联机后,磁盘 1状态显示为没有初始化。
右键单击磁盘 1的空白区,在弹出菜单中选择初始化磁盘。
在初始化磁盘对话框,选择目标磁盘和磁盘分区形式,然后单击确定。
重要MBR分区不支持2 TiB以上容量。如果您使用的云盘容量大于2 TiB或者后续有可能会扩容到2 TiB以上,分区时请采用GPT分区格式。
右键单击磁盘 1的未分配区域,选择新建简单卷。
在新建简单卷向导对话框中,单击下一步,然后根据向导完成初始化操作。
在指定卷大小对话框中,设置简单卷大小,然后单击下一步。
如果您只需要创建一个主区,直接使用默认值即可。您也可以根据需要设置简单卷大小,把磁盘 1分成多个分区来使用。
在分配驱动器号和路径对话框中,选择分配以下驱动器号,并选择盘符名称(本示例以D为例),然后单击下一步。
在格式化分区对话框中,选择按下列设置格式化这个卷,并设置格式化信息,然后单击下一步。
查看新建的简单卷信息,单击完成,关闭新建简单卷向导。
执行结果
初始化完成后,磁盘管理中磁盘 1的状态如下图所示。
您可以在这台电脑中查看到新建的驱动器新加卷 (D:)。至此,您就可以开始使用这个数据盘了。