更新时间:2022-02-22 GMT+08:00

初始化Linux数据盘(parted)

操作场景

本文以裸金属服务器的操作系统为“CentOS 7.0 64位”为例,采用Parted分区工具为数据盘设置分区。

不同裸金属服务器的操作系统的格式化操作可能不同,本文仅供参考,具体操作步骤和差异请参考对应的裸金属服务器操作系统的产品文档。

前提条件

  • 已以“root”帐户登录裸金属服务器,详细操作请参见《裸金属服务器用户指南》中章节“登录Linux裸金属服务器”。
  • 已挂载数据盘至裸金属服务器,且该数据盘未初始化。

划分分区并挂载磁盘

本操作以该场景为例,当裸金属服务器挂载了一块新的数据盘时,采用parted分区工具为数据盘设置分区,分区方式设置为GPT,文件系统设为ext4格式,挂载在“/mnt/sdc”下,并设置开机启动自动挂载。

  1. 执行以下命令,查看新增数据盘。

    lsblk

    回显类似如下信息:

    [root@ecs-centos-70 linux]# lsblk
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0   40G  0 disk 
    ├─xvda1 202:1    0    4G  0 part [SWAP]
    └─xvda2 202:2    0   36G  0 part /
    xvdb    202:16   0  10G  0 disk

    表示当前的裸金属服务器有两块磁盘,“/dev/xvda”是系统盘,“/dev/xvdb”是新增数据盘。

  2. 执行以下命令,进入parted分区工具,开始对新增数据盘执行分区操作。

    parted 新增数据盘

    以新挂载的数据盘“/dev/xvdb”为例:

    parted /dev/xvdb

    回显类似如下信息:

    [root@ecs-centos-70 linux]# parted /dev/xvdb
    GNU Parted 3.1
    Using /dev/xvdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.

  3. 输入“p”,按“Enter”,查看当前磁盘分区方式。

    回显类似如下信息:

    (parted) p
    Error: /dev/xvdb: unrecognised disk label
    Model: Xen Virtual Block Device (xvd)                                     
    Disk /dev/xvdb: 10.7GB
    Sector size (logical/physical): 512B/512B
    Partition Table: unknown
    Disk Flags:   

    “Partition Table”为“unknown”表示磁盘分区方式未知。

  4. 输入以下命令,设置磁盘分区方式。

    mklabel 磁盘分区方式

    磁盘分区方式有MBR和GPT两种,以GPT为例:

    mklabel gpt

    当磁盘已经投入使用后,此时切换磁盘分区方式时,磁盘上的原有数据将会清除,因此请在磁盘初始化时谨慎选择磁盘分区方式。

  5. 输入“p”,按“Enter”,设置分区方式后查看磁盘分区方式。

    回显类似如下信息:

    (parted) mklabel gpt                                              
    (parted) p                                                        
    Model: Xen Virtual Block Device (xvd)
    Disk /dev/xvdb: 20971520s
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start  End  Size  File system  Name  Flags

  6. 输入“unit s”,按“Enter”,设置磁盘的计量单位为磁柱。
  7. 以为整个磁盘创建一个分区为例,输入“mkpart opt 2048s 100%”,按“Enter”。

    “2048s”表示磁盘起始容量,“100%”表示磁盘截止容量,此处仅供参考,您可以根据业务需要自行规划磁盘分区数量及容量。

    回显类似如下信息:
    (parted) mkpart opt 2048s 100%
    Warning: The resulting partition is not properly aligned for best performance.
    Ignore/Cancel? Cancel 

    若出现以上性能优化提示,请先输入“Cancel”,停止分区。然后找出对应磁盘最优性能的初始磁柱值,再使用该值进行分区即可。本示例中性能最优的初始磁柱值即为2048s,因此系统没有该提示。

  8. 输入“p”,按“Enter”,查看新建分区的详细信息。

    回显类似如下信息:

    (parted) p                                                                
    Model: Xen Virtual Block Device (xvd)
    Disk /dev/xvdb: 20971520s
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End        Size       File system  Name  Flags
     1      2048s   20969471s  20967424s               opt

    表示新建分区“/dev/xvdb1”的详细信息。

  9. 输入“q”,按“Enter”,退出parted分区工具。
  10. 执行以下命令,查看磁盘分区信息。

    lsblk

    回显类似如下信息:

    [root@ecs-centos-70 linux]# lsblk                                 
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0   40G  0 disk 
    ├─xvda1 202:1    0    4G  0 part [SWAP]
    └─xvda2 202:2    0   36G  0 part /
    xvdb    202:16   0  100G  0 disk 
    └─xvdb1 202:17   0  100G  0 part 

    此时可以查看到新建分区“/dev/xvdb1”

  11. 执行以下命令,将新建分区文件系统设为系统所需格式。

    mkfs -t 文件系统格式 /dev/xvdb1

    以设置文件系统为“ext4”为例:

    mkfs -t ext4 /dev/xvdb1

    回显类似如下信息:

    [root@ecs-centos-70 linux]# mkfs -t ext4 /dev/xvdb1
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    655360 inodes, 2620928 blocks
    131046 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2151677925
    80 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done  

    格式化需要等待一段时间,请观察系统运行状态,不要退出。

    不同文件系统支持的分区大小不同,请根据您的业务需求选择合适的文件系统。

  12. 执行以下命令,新建挂载点。

    mkdir 挂载点

    以新建挂载点“/mnt/sdc”为例:

    mkdir /mnt/sdc

  13. 执行以下命令,将新建分区挂载到12中新建的挂载点下。

    mount /dev/xvdb1 挂载点

    以挂载新建分区至“/mnt/sdc”为例:

    mount /dev/xvdb1 /mnt/sdc

  14. 执行以下命令,查看挂载结果。

    df -TH

    回显类似如下信息:

    [root@ecs-centos-70 linux]# df -TH
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/xvda2     xfs        39G  4.0G   35G  11% /
    devtmpfs       devtmpfs  946M     0  946M   0% /dev
    tmpfs          tmpfs     954M     0  954M   0% /dev/shm
    tmpfs          tmpfs     954M  9.1M  945M   1% /run
    tmpfs          tmpfs     954M     0  954M   0% /sys/fs/cgroup
    /dev/xvdb1     ext4      11G   38M  101G   1% /mnt/sdc

    表示新建分区“/dev/xvdb1”已挂载至“/mnt/sdc”

设置开机自动挂载磁盘

如果您需要在裸金属服务器系统启动时自动挂载磁盘,不能采用在 /etc/fstab直接指定 /dev/xvdb1的方法,因为云中设备的顺序编码在关闭或者开启裸金属服务器过程中可能发生改变,例如/dev/xvdb1可能会变成/dev/xvdb2。推荐使用UUID来配置自动挂载数据盘。

磁盘的UUID(universally unique identifier)是Linux系统为磁盘分区提供的唯一的标识字符串。

  1. 执行如下命令,查询磁盘分区的UUID。

    blkid 磁盘分区

    以查询磁盘分区“/dev/xvdb1”的UUID为例:

    blkid /dev/xvdb1

    回显类似如下信息:

    [root@ecs-b656 test]# blkid /dev/xvdb1
    /dev/xvdb1: UUID="1851e23f-1c57-40ab-86bb-5fc5fc606ffa" TYPE="ext4"

    表示“/dev/xvdb1”的UUID。

  2. 执行以下命令,使用VI编辑器打开“fstab”文件。

    vi /etc/fstab

  3. 按“i”,进入编辑模式。
  4. 将光标移至文件末尾,按“Enter”,添加如下内容。

    UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc      ext4 defaults     0   2

  5. 按“ESC”后,输入“:wq”,按“Enter”。

    保存设置并退出编辑器。