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.
Central de ajuda/ Dedicated Distributed Storage Service/ Guia de usuário/ Gerenciamento de disco/ Expansão da capacidade de um disco/ Extensão de partições e sistemas de arquivos de um disco de dados SCSI no Linux (fdisk)
Atualizado em 2024-09-10 GMT+08:00

Extensão de partições e sistemas de arquivos de um disco de dados SCSI no Linux (fdisk)

Cenários

No Linux, após a expansão da capacidade ser bem-sucedida, o espaço em disco adicional precisa ser alocado para uma partição existente ou uma nova partição.

Este tópico usa o SUSE Linux Enterprise Server 11 SP4 64bit para descrever como alocar o espaço adicional de um disco de dados SCSI conectado a uma partição usando fdisk.

Atualmente, um disco foi anexado a um servidor e a capacidade original do disco é de 10 GB. Além disso, um espaço de 10 GB foi adicionado ao disco no console de gerenciamento e a capacidade total do disco deve ser de 20 GB. No entanto, o espaço adicional não pode ser visualizado no servidor. As operações a seguir orientam você a visualizar o espaço adicional e estender a partição.

O método para alocar o espaço adicional varia dependendo do sistema operacional do servidor. Este documento é usado apenas para referência. Para obter informações detalhadas sobre as operações e diferenças, consulte os documentos do SO correspondentes.

Com base nos requisitos de serviço e na condição do disco, você pode escolher uma das seguintes maneiras de alocar o espaço em disco adicional:
  • Crie uma nova partição (os serviços não serão interrompidos).

    Criar uma nova partição após a expansão não requer que as partições originais sejam desmontadas. Portanto, os impactos nos serviços são menores do que recriar uma partição existente. Este método é recomendado para discos do sistema ou discos que transportam serviços que não podem ser interrompidos.

    Se o estilo de partição MBR for usado, certifique-se de que a capacidade do disco não exceda 2 TB e o número de partições não atinja o limite superior após a expansão.

  • Recrie uma partição existente (os serviços serão interrompidos).

    Se o estilo de partição MBR for usado e o número de partições tiver atingido o limite superior, você só poderá alocar o espaço adicional a uma partição existente. Recriar uma partição existente não exclui seus dados, mas requer que a partição seja desmontada. Portanto, os serviços serão interrompidos.

    Se o estilo de partição MBR for usado e a capacidade do disco após a expansão exceder 2 TB, o espaço superior a 2 TB não poderá ser usado. Para fazer uso desse espaço, altere o estilo da partição do disco de MBR para GPT. Os dados no disco serão apagados durante tal alteração. Portanto, faça backup dos dados do disco antes de alterar o estilo da partição.

    Execute as operações de expansão com cautela. A operação incorreta pode levar à perda de dados ou exceções. Portanto, é aconselhável usar o CBR para fazer backup dos dados do disco antes da expansão. Para mais detalhes, consulte Gerenciamento de backups.

Pré-requisitos

  • Você fez logon no ECS.
    • Para saber como fazer logon em um ECS, consulte o Guia de usuário do Elastic Cloud Server.
    • Para saber como efetuar logon em um BMS, consulte o Guia de usuário do Bare Metal Server.
  • Você conectou o disco ao ECS, e o espaço adicional não foi alocado.

Recriar uma partição existente

O procedimento a seguir mostra como fazer uso do espaço adicional de um disco conectado a um servidor estendendo a partição /dev/sda1 e montando a partição em /mnt/sdc. Durante esse processo, os serviços serão interrompidos.

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

    fdisk -l

    Informação semelhante à seguinte é exibida:
    ecs-xen-02:/home/linux # fdisk -l
    
    Disk /dev/xvda: 107.4 GB, 107374182400 bytes
    255 heads, 63 sectors/track, 13054 cylinders, total 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 identifier: 0x00065c40
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/xvda1            2048    41945087    20971520   82  Linux swap / Solaris
    /dev/xvda2   *    41945088    83892223    20973568   83  Linux
    /dev/xvda3        83892224   209715199    62911488   83  Linux
    
    Disk /dev/sda: 10.7 GB, 10737418240 bytes
    64 heads, 32 sectors/track, 10240 cylinders, total 20971520 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 identifier: 0x2f1c057a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1            2048    20971519    10484736   83  Linux

    Na saída do comando, 10 GB foram adicionados ao disco de dados /dev/sda no console de gerenciamento e a capacidade total deve ser de 20 GB. Contudo, o espaço adicional não é incluído na saída do comando. Neste caso, execute o seguinte comando para atualizar a capacidade do disco de dados no servidor:

  2. Execute o seguinte comando para atualizar a capacidade do disco de dados no servidor:

    echo 1 > /sys/class/scsi_device/%d:%d:%d:%d/device/rescan &

    No comando, %d:%d:%d:%d indica uma pasta no diretório /sys/class/scsi_device/ e pode ser obtida usando ll /sys/class/scsi_device/.

    Informação semelhante à seguinte é exibida: (2:0:0:0 indica a pasta a ser obtida.)
    cs-xen-02:/sys/class/scsi_device # ll /sys/class/scsi_device/
    total 0
    lrwxrwxrwx 1 root root 0 Sep 26 11:37 2:0:0:0 -> ../../devices/xen/vscsi-2064/host2/target2:0:0/2:0:0:0/scsi_device/2:0:0:0

    Exemplo de comando:

    echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan &

  3. Depois que a capacidade do disco for atualizada, execute o seguinte comando para exibir as informações de partição de disco novamente:

    fdisk -l

    Informação semelhante à seguinte é exibida:
    ecs-xen-02:/sys/class/scsi_device # fdisk -l
    
    Disk /dev/xvda: 107.4 GB, 107374182400 bytes
    255 heads, 63 sectors/track, 13054 cylinders, total 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 identifier: 0x00065c40
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/xvda1            2048    41945087    20971520   82  Linux swap / Solaris
    /dev/xvda2   *    41945088    83892223    20973568   83  Linux
    /dev/xvda3        83892224   209715199    62911488   83  Linux
    
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    64 heads, 32 sectors/track, 20480 cylinders, total 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 identifier: 0x2f1c057a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1            2048    20971519    10484736   83  Linux

    Na saída do comando, o espaço adicional foi adicionado ao disco de dados /dev/sda e a atualização foi bem-sucedida. O disco /dev/sda tem apenas uma partição, /dev/sda1. Tome nota dos sectores inicial e final da partição /dev/sda1. Esses valores serão usados durante a recriação da partição. O sector do começo da separação é 2048, e seu sector final é 20971519.

  4. Execute o seguinte comando para desmontar a partição:

    umount /mnt/sdc

  5. Execute o seguinte comando para entrar em fdisk e insira d para excluir a partição /dev/sda1:

    fdisk /dev/sda1

    Informação semelhante à seguinte é exibida:
    [ecs-xen-02:/sys/class/scsi_device # fdisk /dev/sda
    
    Command (m for help): d
    Selected partition 1
    
    Command (m for help): 

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

    Inserir n cria uma nova partição.

    Informação semelhante à seguinte é exibida:
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    Existem dois tipos de partições de disco:
    • Escolher p cria uma partição primária.
    • Escolher e cria uma partição estendida.

  7. Certifique-se de que o tipo de partição inserido é o mesmo que a partição tinha antes. Neste exemplo, uma partição primária é usada. Portanto, insira p e pressione Enter para criar uma partição primária.

    Informação semelhante à seguinte é exibida:
    p
    Partition number (1-4, default 1):

    Na saída do comando, Partition number especifica o número da partição primária.

  8. Certifique-se de que o número de partição inserido é o mesmo que a partição tinha antes. Neste exemplo, a partição número 1 é usada. Portanto, insira 1 e pressione Enter.

    Informação semelhante à seguinte é exibida:
    Partition number (1-4, default 1): 1
    First sector (2048-41943039, default 2048):

    Na saída do comando, First sector especifica o sector inicial.

    Os dados serão perdidos se as seguintes operações forem realizadas:
    • Selecione um sector inicial diferente do que a partição tinha antes.
    • Selecione um sector final menor do que a partição tinha antes.

  9. Certifique-se de que o sector inicial inserido seja o mesmo que a partição tinha antes. Neste exemplo, o sector inicial 2048 é gravado em 3. Portanto, insira 2048 e pressione Enter.

    Informação semelhante à seguinte é exibida:
    First sector (2048-41943039, default 2048): 
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 

    Na saída do comando, Last sector especifica o sector final.

  10. Certifique-se de que o sector final inserido seja maior ou igual ao sector final gravado em 3. Neste exemplo, o sector de extremidade registrado é 20971519, e o sector de extremidade padrão é usado. Portanto, insira 41943039 e pressione Enter.

    Informação semelhante à seguinte é exibida:
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
    Using default value 41943039
    
    Command (m for help):

    A partição é criada.

  11. Digite p e pressione Enter para exibir os detalhes sobre a partição nova.

    Informação semelhante à seguinte é exibida: (Detalhes sobre a partição /dev/sda1 são exibidos.)
    Command (m for help): p
    
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    64 heads, 32 sectors/track, 20480 cylinders, total 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 identifier: 0x2f1c057a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1            2048    41943039    20970496   83  Linux
    Command (m for help): 
    

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

    Informação semelhante à seguinte é exibida: (A partição foi criada com sucesso.)
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.

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

  13. Execute as seguintes operações com base no sistema de arquivos do disco:

    • Para sistema de arquivos ext3 ou ext4
      1. Execute o seguinte comando para verificar a correção do sistema de arquivos em /dev/sda1:

        e2fsck -f /dev/sda1

        Informação semelhante à seguinte é exibida:
        ecs-xen-02:/sys/class/scsi_device # e2fsck -f /dev/sda1
        e2fsck 1.41.9 (22-Aug-2009)
        Pass 1: Checking inodes, blocks, and sizes
        Pass 2: Checking directory structure
        Pass 3: Checking directory connectivity
        Pass 4: Checking reference counts
        Pass 5: Checking group summary information
        /dev/sda1: 11/655360 files (0.0% non-contiguous), 79663/2621184 blocks
      2. Execute o seguinte comando para estender o tamanho do sistema de arquivos em /dev/sda1:

        resize2fs /dev/sda1

        Informação semelhante à seguinte é exibida:
        ecs-xen-02:/sys/class/scsi_device # resize2fs /dev/sda1
        resize2fs 1.41.9 (22-Aug-2009)
        Resizing the filesystem on /dev/sda1 to 5242624 (4k) blocks.
        The filesystem on /dev/sda1 is now 5242624 blocks long.
      3. Execute o seguinte comando para montar a nova partição em /mnt/sdc:

        mount /dev/sda1 /mnt/sdc

    • Para o sistema de arquivos xfs
      1. Execute o seguinte comando para montar a nova partição em /mnt/sdc:

        mount /dev/sda1 /mnt/sdc

      2. Execute o seguinte comando para estender o tamanho do sistema de arquivos em /dev/sda1:

        sudo xfs_growfs /dev/sda1

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

    df -TH

Configurar montagem automática do disco no início do sistema

Para montar partições automaticamente na inicialização do sistema, não especifique partições, por exemplo, /dev/xvdb1, em /etc/fstab porque a sequência de dispositivos de nuvem e, portanto, seus nomes podem mudar durante a parada ou inicialização do servidor. Você é aconselhado a usar o UUID em /etc/fstab para definir a montagem automática no início do sistema.

UUID é a cadeia de caracteres única para partições de disco em um sistema Linux.

  1. Execute o seguinte comando para consultar o UUID da partição:

    blkid Disk partition

    Neste exemplo, execute o seguinte comando para consultar o UUID da partição /dev/xvdb1:

    blkid /dev/xvdb1

    Informação semelhante à seguinte é exibida:

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

    O UUID da partição /dev/xvdb1 é exibido.

  2. Execute o seguinte comando para abrir o arquivo fstab usando o editor vi:

    vi /etc/fstab

  3. Pressione i para entrar no modo de edição.
  4. Mova o cursor para o final do arquivo e pressione Enter. Em seguida, adicione as seguintes informações:

    UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc      ext3 defaults     0   2
    UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc      ext4 defaults     0   2
    O conteúdo anterior é usado apenas para referência. Adicione as informações que são usadas no ambiente. Os parâmetros são descritos a seguir:
    • A primeira coluna indica o UUID da partição obtido em 1.
    • A segunda coluna indica o diretório no qual a partição está montada. Você pode consultar o ponto de montagem usando o comando df -TH.
    • A terceira coluna indica o formato do sistema de arquivos da partição. Você pode consultar o formato do sistema de arquivos usando o comando df -TH.
    • A quarta coluna indica a opção de montagem de partição. Normalmente, esse parâmetro é definido como defaults.
    • A quinta coluna indica a opção de backup de despejo do Linux.
      • 0: não use backup de despejo do Linux. Normalmente, o backup de despejo não é usado e você pode definir esse parâmetro como 0.
      • 1: use o backup de despejo do Linux.
    • A sexta coluna indica a opção fsck, ou seja, se deve usar o fsck para verificar o disco anexado durante a inicialização.
      • 0: não use fsck.
      • Se o ponto de montagem for a partição raiz (/), este parâmetro deve ser definido como 1.

        Quando este parâmetro é definido como 1 para a partição raiz, este parâmetro para outras partições deve começar com 2 para que o sistema verifique as partições em ordem crescente dos valores.

  5. Pressione Esc, insira :wq e pressione Enter.

    O sistema salva as configurações e sai do editor vi.