初始化云盘

更新时间:
复制 MD 格式

一块全新的云盘挂载到ENS实例后,还不能直接存储数据,您需要为云盘创建分区、挂载文件系统等初始化操作后才可以正常使用。

注意事项

重要

初始化云盘是高风险行为,请慎重操作。

  • 初始化仅适用处理一块全新的数据盘,如果您的数据盘上有数据,请务必为数据盘创建快照,避免数据丢失。

  • 您仅需要对数据盘执行初始化操作,系统盘无需执行初始化操作。如果您强行使用第三方工具对系统盘做初始化操作,可能引发系统崩溃和数据丢失等未知风险。您可以在扩容系统盘后做扩展分区或者新增分区操作。具体操作,请参见扩容云盘(Linux)。

操作场景

  • 当新建边缘云ENS实例时设定的系统盘容量与系统盘镜像容量相同时,系统已经自动为系统盘分区并挂载文件系统,因此系统盘无需初始化。

  • 当新建边缘云ENS实例时设定的系统盘容量大于系统盘镜像容量时,需要对系统盘多余空间进行初始化操作。

  • 数据盘(随实例创建):随实例一起创建的数据盘已自动挂载到ENS实例,无需手动挂载,直接执行初始化操作。

  • 数据盘(单独购买):必须先挂载到ENS实例后,然后执行初始化操作。

说明

如果您的整块云盘只呈现为一个独立的分区(例如:/dev/vdb),不需要划分逻辑分区(例如:/dev/vdb1、/dev/vdb2等),云盘初始化时直接在云盘上创建文件系统即可。

操作示例

Linux数据盘初始化

本示例以CentOS7.9操作系统为例。

登录ENS实例并查看数据盘

  1. 远程连接ENS实例。

  2. 运行以下命令,获取数据盘的设备名称。

    sudo fdisk -lu

    示例的运行结果如下所示,表示当前ENS实例挂载了三块云盘:

    • /dev/vda是系统盘,随实例创建的系统盘已默认初始化,无需再初始化。

    • /dev/vdb、/dev/vdc为新增数据盘。

    [root@i-54 xxx ~]# sudo fdisk -lu
    Disk /dev/vda: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x000b7a35
       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *        2048    41943039    20970496   83  Linux
    WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
    Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: gpt
    Disk identifier: 5E7E2C19-6F5A-4AC7-9E6F-0D08EEC1DD3F
    
    Disk /dev/vdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

为数据盘创建GPT分区

  1. 运行以下命令,安装Parted工具。

    sudo yum install -y parted
  2. 使用Parted工具对数据盘进行分区。

    1. 运行以下命令,开始分区。本操作以数据盘/dev/vdb为例。

      sudo parted /dev/vdb

      其中,/dev/vdb是待分区数据盘的设备名称,请您根据实际环境替换。

    2. 在Parted交互命令行输入以下内容,设置分区格式为GPT分区。

      mklabel gpt
    3. 输入以下内容,划分分区,并设置分区的开始位置和结束位置。

      mkpart <分区名称> <初始位置> <结束位置>
      重要

      分区的开始位置和结束位置请使用二进制单位MiB、GiB等(创建后分区会4KiB对齐)单位,否则会影响分区对齐,严重影响云盘性能。

      <分区名称>、<初始位置>、<结束位置>请根据实际情况进行划分。

      1. 单分区示例:以划分一个主分区、分区名为primary,开始位置为1MiB,100%容量给到第一个分区为例。

        mkpart primary 1MiB 100%
      2. 多分区示例:以划分两个分区、第一个分区名为primary,分区容量为20GiB,剩余容量划分至第二个分区secondary为例,需要分别执行:

        mkpart primary 1MiB 20GiB
        mkpart secondary 20GiB 100%
    4. 运行以下命令,检查分区是否对齐。

      其中,1是对应的分区号,通常建议您做分区对齐,以获取更好的云盘性能。

      align-check optimal 1

      如果分区是对齐的,结果如下所示:

      1 aligned
    5. 输入以下内容,查看分区表。

      print
    6. (可选)如果上述分区操作有误,请输入rm+分区号,删除错误分区,再按照需求执行c~e。

      重要

      请在删除分区前,确保分区内无数据或者数据已备份。

    7. 输入以下内容,退出Parted工具。

      quit
      [root@ixxx w02 ~]# sudo parted /dev/vdb
      GNU Parted 3.1
      Using /dev/vdb
      Welcome to GNU Parted! Type 'help' to view a list of commands.
      (parted) mklabel gpt
      Warning: The existing disk label on /dev/vdb will be destroyed and all data on this disk will be lost. Do you want to continue?
      Yes/No? yes
      (parted) mkpart primary 1MiB 100%
      (parted) align-check optimal 1
      1 aligned
      (parted) print
      Model: Virtio Block Device (virtblk)
      Disk /dev/vdb: 21.5GB
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags:
      Number  Start   End     Size    File system  Name     Flags
       1      1049kB  21.5GB  21.5GB  ext4         primary
      (parted) quit
  3. 运行以下命令,使系统重读分区表。

    partprobe
  4. 运行以下命令,查看新分区信息。本操作以数据盘/dev/vdb为例。

    sudo fdisk -lu /dev/vdb

    其中,/dev/vdb是数据盘的设备名称,请您根据实际环境替换。

    运行结果如下所示,如果Disk label type为gpt,表示新分区已创建完成。

    [root@i-xxxxx ~]# partprobe
    [root@i-xxxxx ~]# sudo fdisk -lu
    Disk /dev/vda: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x000b7a35
       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *        2048    41943039    20970496   83  Linux
    WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
    Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: gpt
    Disk identifier: 43C15FC2-5E81-42E2-AAEF-1B707FB6EE24
    #         Start          End    Size  Type            Name
     1         2048     41948991     20G  Microsoft basic primary

创建并挂载文件系统

无论云盘是否进行了分区,云盘在使用前都需要创建并挂载文件系统,才能被操作系统识别并正常使用。不同文件系统支持的分区大小不同,请您根据实际需求创建文件系统。

  1. 运行以下命令,安装e2fsprogs工具。

    sudo yum install -y e2fsprogs
    说明

    此步骤中yum命令适用于CentOS等Linux发行版本。其他Linux发行版本,请根据实际使用的包管理软件修改安装命令。例如Debian或Ubuntu,请使用apt-get install <软件包名称>。

  2. 运行以下命令,创建文件系统。以下示例命令介绍如何创建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是裸设备名称,请您根据实际裸设备名称进行替换。

  3. 运行以下命令,挂载文件系统。

    • 以将分区/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。

  4. 运行以下命令,检查挂载结果是否符合您的预期。

    df -Th

配置开机自动挂载分区

您可以根据需要在/etc/fstab中写入新分区信息,配置开机自动挂载,以确保系统每次启动时会自动挂载云盘分区。

  1. 运行以下命令,备份/etc/fstab文件。

    sudo cp /etc/fstab /etc/fstab.bak
  2. 在/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说明。

  3. 运行以下命令,查看/etc/fstab中的新分区信息。

    cat /etc/fstab

    结果如下所示,返回结果里出现了新分区信息,说明写入成功。

    # /etc/fstab
    # Created by anaconda on Tue Aug 24 08:07:23 2021
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=xxx              xxx /                       ext4    defaults        1 1
    UUID=2xxx             xxx /mnt                    ext4    defaults        0 0
  4. 运行以下命令,验证自动挂载功能是否生效。

    sudo umount /dev/vdb1
    sudo mount -a
    mount | grep /mnt

Windows数据盘初始化

操作步骤

  1. 远程连接ENS实例。

  2. 联机。

    1. 在Windows Server桌面,右键单击开始图标图标,选择磁盘管理。

    2. 在磁盘管理页面中,找到脱机状态的目标数据盘。

      若弹出初始化磁盘对话框,表示云盘已联机。
      若数据盘已联机且分区状态良好,无需其余操作,可直接使用。
    3. 右键单击目标磁盘,选择联机。

      • 若磁盘显示联机,目标分区显示状态良好,表示系统可正常使用该云盘。

      • 若磁盘显示没有初始化,目标分区显示未分配,需要初始化后才可存储数据。

  3. 在磁盘管理页面中,找到脱机状态的目标数据盘。

    若弹出初始化磁盘对话框,表示云盘已联机。
    若数据盘已联机且分区状态良好,无需其余操作,可直接使用。
  4. 右键单击磁盘 1的空白区域,选择联机。

    完成联机后,磁盘 1状态显示为没有初始化。

  5. 右键单击磁盘 1的空白区,在弹出菜单中选择初始化磁盘。

  6. 在初始化磁盘对话框,选择目标磁盘和磁盘分区形式,然后单击确定。

    重要

    MBR分区不支持2 TiB以上容量。如果您使用的云盘容量大于2 TiB或者后续有可能会扩容到2 TiB以上,分区时请采用GPT分区格式。

  7. 右键单击磁盘 1的未分配区域,选择新建简单卷。

  8. 在新建简单卷向导对话框中,根据向导完成初始化操作。

    1. 在指定卷大小对话框中,设置简单卷大小,然后单击下一步。

      如果您只需要创建一个主区,直接使用默认值即可。您也可以根据需要设置简单卷大小,把磁盘 1分成多个分区来使用。

    2. 在分配驱动器号和路径对话框中,选择分配以下驱动器号,并选择盘符名称(本示例以D为例),然后单击下一步。

    3. 在格式化分区对话框中,选择按下列设置格式化这个卷,并设置格式化信息,然后单击下一步。

      重要

      请谨慎选择分配单元大小,此设置一旦确定将无法修改。具体云盘容量限制,请参看NTFS概述。

      • 后续有扩容至16TiB~32TiB(包括)需求,选8192。

      • 后续有扩容至32TiB~64TiB(包括)需求,选16K。

      • 其他情况请保持默认值。

    4. 查看新建的简单卷信息,单击完成,关闭新建简单卷向导。