Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-03-03 GMT+08:00

Extensão de partições e sistemas de arquivos para discos de sistema (Linux)

Cenários

Depois que um disco é expandido no console de gerenciamento, o tamanho do disco é ampliado, mas o espaço adicional não pode ser usado diretamente.

No Linux, você deve alocar o espaço adicional para uma partição existente ou uma nova partição.

Se a capacidade do disco for expandida quando seu ECS for interrompida, o espaço adicional de um disco do sistema Linux será automaticamente adicionado à partição no final do disco na inicialização do servidor. Neste caso, o espaço adicional pode ser usado diretamente.

Esta seção usa o CentOS 7.4 64bit para descrever como estender a partição de disco usando growthpart e fdisk. O método é utilizado apenas para o ECS. O método para alocar o espaço adicional varia com o SO do servidor. Esta seção é usada apenas para referência. Para obter operações detalhadas e diferenças, consulte os documentos do SO correspondentes.

Executar as operações de expansão com cautela. A operação incorreta pode levar à perda de dados ou exceções. Portanto, é aconselhável fazer backup dos dados do disco usando CBR ou snapshots antes da expansão. Para obter detalhes sobre o uso do CBR, consulte Gerenciamento de backups do EVS. Para obter detalhes sobre o uso de snapshots, consulte Criação de um snapshot (OBT).

Pré-requisitos

Extensão de uma partição MBR existente

O CentOS 7.4 64bit é usado como o SO de exemplo. Originalmente, o disco do sistema /dev/vda tem 40 GB e uma partição (/dev/vda1) e, em seguida, 60 GB são adicionados ao disco. O procedimento a seguir mostra como alocar os 60 GB adicionais à partição MBR existente /dev/vda1.

  1. Execute o comando growpart para verificar se growthpart foi instalado.

    Se a introdução de uso da ferramenta for retornada, a ferramenta foi instalada e você não precisa instalá-la novamente. Pule o passo 2.

  2. Execute o seguinte comando para instalar a ferramenta growthpart:

    yum install cloud-utils-growpart

  3. Execute o seguinte comando para visualizar a capacidade total do disco do sistema /dev/vda:

    fdisk -l

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-test-0001 ~]# fdisk -l
    
    Disk /dev/vda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x000bcb4e
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *        2048    83886079    41942016   83  Linux

  4. Execute o seguinte comando para exibir a capacidade da partição /dev/vda1:

    df -TH

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-test-0001 ~]# df -TH
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/vda1      ext4       43G  2.0G   39G   5% /
    devtmpfs       devtmpfs  2.0G     0  2.0G   0% /dev
    tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm
    tmpfs          tmpfs     2.0G  9.0M  2.0G   1% /run
    tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
    tmpfs          tmpfs     398M     0  398M   0% /run/user/0

  5. Execute o seguinte comando para estender a partição usando growthpart:

    growpart Disco do sistema número da partição

    Neste exemplo, execute o seguinte comando:

    growpart /dev/vda 1

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-test-0001 ~]# growpart /dev/vda 1
    CHANGED: partition=1 start=2048 old: size=83884032 end=83886080 new: size=209713119,end=209715167

  6. Execute o seguinte comando para estender o sistema de arquivos da partição:

    resize2fs Partição de disco

    Neste exemplo, execute o seguinte comando:

    resize2fs /dev/vda1

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-test-0001 ~]# resize2fs /dev/vda1
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/vda1 is mounted on /; on-line resizing required
    old_desc_blocks = 5, new_desc_blocks = 13
    The filesystem on /dev/vda1 is now 26214139 blocks long.

  7. Execute o seguinte comando para exibir a nova capacidade da partição /dev/vda1:

    df -TH

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-test-0001 ~]# df -TH
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/vda1      ext4      106G  2.0G   99G   2% /
    devtmpfs       devtmpfs  2.0G     0  2.0G   0% /dev
    tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm
    tmpfs          tmpfs     2.0G  9.0M  2.0G   1% /run
    tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
    tmpfs          tmpfs     398M     0  398M   0% /run/user/0

Criação de uma nova partição MBR

Originalmente, o disco do sistema /dev/vda tem 40 GB e uma partição (/dev/vda1) e, em seguida, 40 GB são adicionados ao disco. O procedimento a seguir mostra como criar uma nova partição MBR /dev/vda2 com esses 40 GB.

  1. Execute o seguinte comando para exibir as informações de partição de disco:

    fdisk -l

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-2220 ~]# fdisk -l
    
    Disk /dev/vda: 85.9 GB, 85899345920 bytes, 167772160 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: 0x0008d18f
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *        2048    83886079    41942016   83  Linux

    Na saída do comando, a capacidade do disco do sistema dev/vda é de 80 GB, em que a partição dev/vda1 em uso ocupa 40 GB e os 40 GB adicionais não foram alocados.

  2. Execute o seguinte comando para entrar no fdisk:

    fdisk /dev/vda

    Informações semelhantes às seguintes são exibidas:
    [root@ecs-2220 ~]# fdisk /dev/vda
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): 

  3. Digite n e pressione Enter para criar uma nova partição.

    Command (m for help): n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Existem dois tipos de partições de disco:
    • escolha de p cria-se uma partição primária.
    • escolha de e cria-se uma partição estendida.

    Se o estilo de partição MBR for usado, um máximo de 4 partições primárias ou 3 partições primárias e 1 partição estendida podem ser criadas. A partição estendida não pode ser usada diretamente e deve ser dividida em partições lógicas antes do uso.

    As partições de disco criadas usando o GPT não são categorizadas.

  4. Neste exemplo, uma partição primária é criada. Portanto, insira p e pressione Enter para criar uma partição primária.

    Informações semelhantes às seguintes são exibidas:
    Select (default p): p
    Partition number (2-4, default 2): 

  5. O número da partição 2 é usado neste exemplo. Portanto, insira 2 e pressione Enter.

    Informações semelhantes às seguintes são exibidas:
    Partition number (2-4, default 2): 2
    First sector (83886080-167772159, default 83886080):

  6. Digite o setor inicial da nova partição e pressione Enter. Neste exemplo, o setor de início padrão é usado.

    O sistema exibe os setores inicial e final do espaço disponível da partição. Você pode personalizar o valor dentro desse intervalo ou usar o valor padrão. O setor de início deve ser menor que o setor final da partição.

    First sector (83886080-167772159, default 83886080):
    Using default value 83886080
    Last sector, +sectors or +size{K,M,G} (83886080-167772159,default 167772159):

  7. Insira o setor final da nova partição e pressione Enter. Neste exemplo, o setor final padrão é usado.

    O sistema exibe os setores inicial e final do espaço disponível da partição. Você pode personalizar o valor dentro desse intervalo ou usar o valor padrão. O setor de início deve ser menor que o setor final da partição.

    Last sector, +sectors or +size{K,M,G} (83886080-167772159,
    default 167772159):
    Using default value 167772159
    Partition 2 of type Linux and of size 40 GiB is set
    
    Command (m for help): 

  8. Digite p e pressione Enter para exibir a nova partição.

    Command (m for help): p
    
    Disk /dev/vda: 85.9 GB, 85899345920 bytes, 167772160 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: 0x0008d18f
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/vda1   *        2048    83886079    41942016   83  Linux
    /dev/vda2        83886080   167772159    41943040   83  Linux
    Command (m for help): 

  9. Digite w e pressione Enter para gravar as alterações na tabela de partição.

    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table. The new table will be used at
    the next reboot or after you run partprobe(8) or kpartx(8)
    Syncing disks.

    A partição é criada.

    Caso queira descartar as alterações feitas antes, você pode sair do fdisk digitando q.

  10. Execute o seguinte comando para sincronizar a nova tabela de partição com o SO:

    partprobe

  11. Execute o seguinte comando para definir o formato do sistema de arquivos para a nova partição:

    mkfs -t Sistema de arquivos Partição de disco

    • Exemplo de comando do sistema de arquivos ext*:

      (O sistema de arquivos ext4 é usado neste exemplo.)

      mkfs -t ext4 /dev/vda2

      [root@ecs-2220 ~]# mkfs -t ext4 /dev/vda2
      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
      2621440 inodes, 10485760 blocks
      524288 blocks (5.00%) reserved for the super user
      First data block=0
      Maximum filesystem blocks=2157969408
      320 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, 2654208,
              4096000, 7962624
      
      Allocating group tables: done
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done
    • Exemplo de comando do sistema de arquivos xfs:

      mkfs -t xfs /dev/vda2

      [root@ecs-2220 ~]# mkfs -t xfs /dev/vda2 
      meta-data=/dev/vda2              isize=512     agcount=4, agsize=2621440 blks
               =                       sectsz=512    attr=2, projid32bit=1
               =                       crc=1         finobt=0, sparse=0
      data     =                       bsize=4096    blocks=10485760, imaxpct=25
               =                       sunit=0       swidth=0 blks
      naming   =version2               bsize=4096    ascii-ci=0 ftype=1
      log      =internal log           bsize=4096    blocks=5120, version=2
               =                       sectsz=512    sunit=0 blks, lazy-count=1
      realtime =none                   extsz=4096    blocks=0, rtextents=0

    A formatação demora um pouco e você precisa observar o status de execução do sistema. Uma vez done é exibido na saída do comando, a formatação está completa.

  12. (Opcional) Execute o seguinte comando para criar um ponto de montagem:

    Execute esta etapa se quiser montar a partição em um novo ponto de montagem.

    mkdir Ponto de montagem

    Neste exemplo, execute o seguinte comando para criar o ponto de montagem /opt:

    mkdir /opt

  13. Execute o seguinte comando para montar a nova partição:

    mount Partição do disco Ponto de montagem

    Neste exemplo, execute o seguinte comando para montar a nova partição /dev/vda2 em /opt:

    mount /dev/vda2 /opt

    Se a nova partição estiver montada em um diretório que não esteja vazio, os subdiretórios e arquivos no diretório serão ocultos. Portanto, é aconselhável montar a nova partição em um diretório vazio ou em um novo diretório. Se a nova partição tiver de ser montada num diretório que não esteja vazio, mova temporariamente os subdiretórios e ficheiros neste diretório para outro diretório. Depois que a partição for montada com êxito, mova os subdiretórios e os arquivos de volta.

  14. Execute o seguinte comando para visualizar o resultado da montagem:

    df -TH

    [root@ecs-2220 ~]# df -TH
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/vda1      ext4       43G  2.0G   39G   5% /
    devtmpfs       devtmpfs  509M     0  509M   0% /dev
    tmpfs          tmpfs     520M     0  520M   0% /dev/shm
    tmpfs          tmpfs     520M  7.2M  513M   2% /run
    tmpfs          tmpfs     520M     0  520M   0% /sys/fs/cgroup
    tmpfs          tmpfs     104M     0  104M   0% /run/user/0
    /dev/vda2      ext4       43G   51M   40G   1% /opt

    Se o ECS for reiniciado, a montagem se tornará inválida. Você pode definir a montagem automática para partições no início do sistema modificando o arquivo /etc/fstab. Para mais detalhes, consulte Setting Automatic Mounting at System Start.

Setting Automatic Mounting at System Start

Modify the fstab file to set automatic disk mounting at server start. You can also set automatic mounting for the ECSs containing data. This operation will not affect the existing data.

The following procedure shows how to set automatic disk mounting at server start by using UUIDs to identify disks in the fstab file. You are advised not to use device names to identify disks in the file because a device name may change (for example, from /dev/vdb1 to /dev/vdb2) during ECS stop or start, resulting in improper ECS running after restart.

UUID is the unique character string for disk partitions in a Linux system.

  1. Run the following command to query the partition UUID:

    blkid Disk partition

    In this example, run the following command to query the UUID of the /dev/vdb1 partition:

    blkid /dev/vdb1

    Information similar to the following is displayed:

    [root@ecs-test-0001 ~]# blkid /dev/vdb1
    /dev/vdb1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"

    The UUID of the /dev/vdb1 partition is displayed.

  2. Run the following command to open the fstab file using the vi editor:

    vi /etc/fstab

  3. Press i to enter editing mode.
  4. Move the cursor to the end of the file and press Enter. Then, add the following information:

    UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /mnt/sdc                ext4    defaults        0 2
    The preceding content is used for reference only. Add the information that is used in the environment. The parameters are described as follows:
    • The first column indicates the partition UUID obtained in 1.
    • The second column indicates the directory on which the partition is mounted. You can query the mount point using the df -TH command.
    • The third column indicates the file system format of the partition. You can query the file system format using the df -TH command.
    • The fourth column indicates the partition mount option. Normally, this parameter is set to defaults.
    • The fifth column indicates the Linux dump backup option.
      • 0: Linux dump backup is not used. Normally, dump backup is not used, and you can set this parameter to 0.
      • 1: Linux dump backup is used.
    • The sixth column indicates the fsck option, that is, whether to use fsck to check the attached disk during startup.
      • 0: not use fsck.
      • If the mount point is the root partition (/), this parameter must be set to 1.

        When this parameter is set to 1 for the root partition, this parameter for other partitions must start with 2 because the system checks the partitions in the ascending order of the values.

  5. Press Esc, enter :wq, and press Enter.

    The system saves the configurations and exits the vi editor.

  6. Perform the following operations to verify the automatic mounting function:

    1. Run the following command to unmount the partition:

      umount Disk partition

      In this example, run the following command:

      umount /dev/vdb1

    2. Run the following command to reload all the content in the /etc/fstab file:

      mount -a

    3. Run the following command to query the file system mounting information:

      mount | grep Mount point

      In this example, run the following command:

      mount | grep /mnt/sdc

      If information similar to the following is displayed, automatic mounting has been configured:

      root@ecs-test-0001 ~]# mount | grep /mnt/sdc
      /dev/vdb1 on /mnt/sdc type ext4 (rw,relatime,data=ordered)