human: 如何处理七牛云的云主机分区格式化大于 2 TiB数据盘

gpt: [云主机](https://developer.qiniu.com/qvm) > 使用指南 > 云主机 >云硬盘 >分区格式化云盘 >分区格式化大于 2
TiB数据盘

#  分区格式化大于 2 TiB数据盘

最近更新时间: 2020-11-24 17:34:35

本文介绍了如何在不同的操作系统里分区格式化一块大于2 TiB的数据盘。

# 前提条件

  * 数据盘已经挂载到实例上。
  * 远程登录实例。

# 背景信息

创建快照的速度和数据的增量成正比，云盘占用的容量越大，创建快照的时间也会更长。

七牛云块存储支持的分区格式包括MBR（Master Boot Record）和GPT（Globally Unique Identifier
Partition Table）。其中，MBR只支持处理不大于2 TiB的容量，且只支持划分4个主区。如果您需要使用大于2
TiB的数据盘，您必须采用GPT格式。

**注意**

  1. MBR和GPT分区格式间相互转换有数据丢失的风险。您在使用快照创建云盘或者扩容云盘容量，并且希望设置的新容量大于2TiB时，建议您提前查询数据盘采用的分区格式是否为MBR。 
  2. 如果您需要保留数据，建议您重新创建并挂载一块数据盘，采用GPT分区格式后，再将已有数据拷贝至新的数据盘上。 

  
---  
  
大于2 TiB的数据盘请采用下表中描述的分区工具、分区格式和文件系统。

操作系统 | 分区工具 | 分区格式 | 文件系统   
---|---|---|---  
Windows | 磁盘管理 | GPT | NTFS   
Linux | parted | GPT | ext4或xfs   
  
# **分区格式化Windows数据盘**

此章节以Windows Server 2012 R2 64位操作系统为例，说明如何在Windows实例中分区格式化一块大于2 TiB的全新数据盘。

  1. 在Windows Server桌面，键盘按下`Win + R`组合键。
  2. 在运行窗口输入`diskmgmt.msc`并单击确定，打开磁盘管理。

![](https://qey2kbifv.hn-bkt.clouddn.com/2020-11-24/MyCqlPrYJmetb3OX9cfZ.png)

  3. 找到需要分区格式化的磁盘（本示例中为磁盘 1）。磁盘状态显示为脱机。
  4. 右击磁盘 1周边空白处，单击联机。

![联机](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/tk7EQ6mHz158dpBZvGUn.png)  
联机后，磁盘 1的状态显示为没有初始化。

  5. 右键单击磁盘 1周边的空白区，在弹出菜单中，选择初始化磁盘。
  6. 在初始化磁盘对话框里，选择磁盘 1，并选择磁盘分区形式为GPT。

![GPT分区](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/4uztPvbJRsypeNfcM6A0.png)

  7. 在磁盘管理窗口，右键单击磁盘 1的未分配区域，选择新建简单卷，创建一个4 TiB的NTFS格式的卷。

![新建简单卷](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/CAQi2j63SuYVhto7w0na.png)

  8. 在新建简单卷向导中，单击下一步，并完成以下操作。
    1. 指定卷大小：指定简单卷大小。如果您只要创建一个主区，使用默认值。单击下一步。您也可以把磁盘 1分成多个分区来使用。NTFS卷上的最大尺寸，理论上，NTFS的最大卷包含2 64 -1个簇。实际上，WinXP Pro中，NTFS卷的最大限制是2 32  
-1个簇。例如，如果是64 KiB的簇，那NTFS卷的最大尺寸就是约256 TiB。如果选择4 KiB的簇，那NTFS卷的最大尺寸就是约16  
TiB。NTFS会根据磁盘的容量来自动选择簇的大小。

![新建简单卷向导](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/EgpyNoLcB1rmwzMeVK5u.png)

  2. 分配驱动器号和路径：选择一个驱动器号（即盘符），例如D。单击下一步。

![分配磁盘号](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/Ek1YX0ynIvuHZWs6DKFG.png)

  3. 格式化分区：选择格式化设置，包括文件系统、分配单元大小和卷标，确认是否执行快速格式化和启用文件和文件夹压缩。例如，选择执行快速格式化。单击下一步。

![设置卷](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/Ytv5JeWsxzEPw2bLaIX4.png)

  4. 开始创建新简单卷：当向导对话框里显示已经完成新简单卷的创建时，单击完成，关闭新建简单卷向导。

格式化分区完成后，磁盘管理中磁盘 4的状态如下图所示。![状态良好](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/PS9pHtbrizMJBNcj3sIm.png)

# **更换Windows数据盘分区格式**

此章节以Windows Server 2012 R2 64位操作系统为例，假设需要操作的数据盘容量为 3 TiB。

  1. 在Windows Server桌面，右键单击开始图标，选择磁盘管理。
  2. 找到需要分区格式化的磁盘（本示例中为磁盘 2）。
  3. 右键单击一个简单卷，在弹出菜单中，选择删除卷。

![删除卷](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/JebcQhqYznE1xBiwfCHA.png)

  4. 右键单击磁盘周边的空白区，在弹出菜单中，选择转换成GPT磁盘。
  5. 在磁盘管理窗口，右键单击磁盘的未分配区域，选择新建简单卷，创建一个3 TiB的NTFS格式的卷。

![新建简单卷](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/qg7zoDc2WpT6YmP1ZlSK.png)

  6. 在新建简单卷向导中，单击下一步，并完成以下操作。
    1. 指定卷大小：指定简单卷大小。如果您只要创建一个主区，使用默认值。单击下一步。您也可以把磁盘 2分成多个分区来使用。

![向导](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/FGiUfnDetWIyPx9ACL8S.png)

  2. 分配驱动器号和路径：选择一个驱动器号（即盘符），例如E，单击下一步。

![](https://qey2kbifv.hn-bkt.clouddn.com/2020-11-24/4ceEAnRpZxmN9gBDqoiU.png)

  3. 格式化分区：选择格式化设置，包括文件系统、分配单元大小和卷标，确认是否执行快速格式化和启用文件和文件夹压缩。例如，选择执行快速格式化。单击下一步。

![](https://qey2kbifv.hn-bkt.clouddn.com/2020-11-24/UWfHtBDpslYKQx8PJmhb.png)

  4. 开始创建新简单卷：当向导对话框里显示已经完成新简单卷的创建时，单击完成，关闭新建简单卷向导。

格式化分区完成后，磁盘管理中磁盘 4的状态如下图所示。  
![](https://qey2kbifv.hn-bkt.clouddn.com/2020-11-24/AfvE51umHjeUgZByiOW0.png)

# 分区格式化Linux数据盘

此章节以Alibaba Cloud Linux 2.1903 LTS  
64位操作系统为例，说明如何在Linux实例上使用Parted工具和e2fsprogs工具分区并格式化一个大容量数据盘。假设需要处理的数据盘是一个新建的3  
TiB的空盘，设备名为/dev/vdb。

前提条件：请确认您的Linux实例上已经安装了Parted工具和e2fsprogs工具。

  * 运行以下命令安装Parted工具： 
    
        yum install -y parted
    

  * 运行以下命令安装e2fsprogs工具： 
    
        yum install -y e2fsprogs
    

按以下步骤分区格式化大容量数据盘，并挂载文件系统。

  1. 远程连接QVM实例。
  2. 查看是否存在数据盘。

运行以下命令：

    
    
        fdisk -l
    

运行结果如下所示，应包含数据盘信息。如果没有，表示您未挂载数据盘。

    
    
    Disk /dev/vdb: 3221.2 GB, 3221225472000 bytes, 6291456000 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
    

  3. 使用Parted工具为数据盘进行分区。

    1. 运行以下命令开始分区。
        
                    parted /dev/vdb
        

    2. 运行以下命令，将默认的MBR分区格式转为GPT分区格式。
        
                    mklabel gpt
        

    3. 运行以下命令，划分一个主分区，并设置分区的开始位置和结束位置。
        
                    mkpart primary 1 100%
        

    4. 运行以下命令，检查分区是否对齐。 
        
                    align-check optimal 1
        
        运行结果如下所示：
        

    
    
                                         1 aligned
    

如果返回的是`1 not
aligned`，说明分区未对齐，建议您运行以下命令，再根据`（<optimal_io_size>+<alignment_offset>）/<physical_block_size>`的公式计算出最佳分区模式的起始扇区值。假设1024为计算得出的推荐扇区值，则您可以运行`mkpart
primary 1024s 100%`重新划分一个主分区。

    
    
    cat /sys/block/vdb/queue/optimal_io_size
    cat /sys/block/vdb/queue/minimum_io_size
    cat /sys/block/vdb/alignment_offset
    cat /sys/block/vdb/queue/physical_block_size
    

  5. 运行以下命令，查看分区表。 
    
                 print
    

  6. 运行以下命令，退出Parted工具。
    
                 quit
    

Parted工具分区结果如下所示。  
![parted分区](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/4ZG2xsQjJIfrE3X7LC6b.png)

  4. 运行以下命令，使系统重读分区表。

partprobe

  5. 运行以下命令，为/dev/vdb1分区创建一个文件系统。

根据您的需求运行以下任一命令，创建文件系统。

    
    
    * 创建一个ext4文件系统。 
    
                mkfs -t ext4 /dev/vdb1
    
    * 创建一个xfs文件系统。 
    
                mkfs -t xfs /dev/vdb1
    

  6. 运行以下命令，创建一个名为/test的挂载点。

`mkdir /test`

  7. 运行以下命令，将分区/dev/vdb1挂载到/test。

`mount /dev/vdb1 /test`

  8. 运行以下命令，查看目前磁盘空间和使用情况。 

`df -h`

如果返回结果里出现新建文件系统的信息，说明挂载成功，您可以使用新的文件系统了。

![查看df结果](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/T6q4zfX3FcaWrCYbg5w8.png)

  9. （推荐）在/etc/fstab文件中写入新分区信息，启动开机自动挂载分区。

    1. 运行以下命令，备份etc/fstab。

    2. 运行以下命令，向/etc/fstab里写入新分区信息。
        
                    echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /test ext4 defaults 0 0 >> /etc/fstab
        

需要使用root用户运行此命令。如果您使用的是普通用户，可运行`su -`命令切换到root用户，然后运行此命令；或者直接运行`sudo vi
/etc/fstab`命令编辑/etc/fstab文件。  
建议在/etc/fstab中使用全局唯一标识符UUID来引用新分区。您可以使用blkid命令获得新分区的UUID。

  3. 运行以下命令，查看/etc/fstab的信息。
    
                 cat /etc/fstab
    

如果返回结果里出现了写入的新分区信息，说明写入成功。

至此，您已经成功分区并格式化了一个3 TiB数据盘。

# 附录一：Linux实例升级e2fsprogs工具包

如果数据盘容量为16
TiB，您需要使用1.42及以上版本的e2fsprogs工具包完成ext4文件系统格式化。如果e2fsprogs版本低于1.42，会出现如下错误信息。

    
    
    mkfs.ext4: Size of device /dev/vdb too big to be expressed in 32 bits using a blocksize of 4096. 
    

您需要按以下方式安装高版本的e2fsprogs，如本示例中使用的1.42.8。

  1. 运行以下命令检查e2fsprogs当前的版本。

`rpm -qa | grep e2fsprogs`

运行结果如下所示。

![查询版本](https://qey2kbifv.hn-
bkt.clouddn.com/2020-11-24/XhYwasgJF6c3GVvjeUlA.png)

如果当前版本低于1.42，按以下步骤安装软件。

  2. 运行以下命令下载1.42.8版本的e2fsprogs。您可以在 [e2fsprogs](https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.8/?spm=a2c4g.11186623.2.14.Pb5baW)找到最新的软件包。

wget
<https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.8/e2fsprogs-1.42.8.tar.gz>

  3. 依次运行以下命令，编译高版本的工具。 

    1. 运行以下命令，解压软件包。
        
                    tar xvzf e2fsprogs-1.42.8.tar.gz
        

    2. 运行以下命令，进入软件包目录。
        
                    cd e2fsprogs-1.42.8
        

    3. 运行以下命令，生成Makefile文件。
        
                    ./configure
        

    4. 运行以下命令，编译e2fsprogs。
        
                    make
        

    5. 运行以下命令，安装e2fsprogs。
        
                    make install
        

  4. 运行以下命令检查是否成功更新版本。

`rpm -qa | grep e2fsprogs`

# 附录二：Linux实例关闭lazy init功能

ext4文件系统默认开启lazy  
init功能。该功能开启时，实例会发起一个线程持续地初始化ext4文件系统的metadata，从而延迟metadata初始化。所以在格式化数据盘后的近期时间内，云盘的IOPS性能会受到影响，IOPS性能测试的数据会明显偏低。

如果您需要在格式化以后马上测试数据盘性能，请运行以下命令在格式化文件系统时关闭lazy_init功能。

    
    
    mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -E lazy_itable_init=0,lazy_journal_init=0   /dev/vdb1
    

**说明**

关闭lazy init功能后，格式化的时间会大幅度地延长，格式化32  
TiB的数据盘可能需要10分钟~30分钟。请您根据自身的需要选择是否使用lazy init功能。  
  
---  
  
以上内容是否对您有帮助？