Nesta página, você terá uma visão geral do sistema de arquivos do Container-Optimized OS e verá como ativar e formatar discos.
Sistema de arquivos
O layout do sistema de arquivos de imagem de nó do Container-Optimized OS é otimizado para melhorar a segurança do nó. O espaço do disco de inicialização foi dividido em três tipos de partições:
- partição raiz, que é montada como somente leitura
- partições com estado, que podem ser gravadas e têm estado
- partições sem estado, que podem ser gravadas, mas o conteúdo não permanece durante as reinicializações
Ao usar o Container-Optimized OS, fique atento ao particionamento se você executar serviços próprios com certas expectativas sobre o layout do sistema de arquivos fora dos contêineres.
O sistema de arquivos raiz é ativado como somente leitura para proteger a integridade do sistema.
No entanto, os diretórios iniciais e /mnt/stateful_partition são permanentes e graváveis.
Como trabalhar com o sistema de arquivos do Container-Optimized OS
Na lista a seguir, mostramos os caminhos no sistema de arquivos de imagem do node do Container-Optimized OS, juntamente com as propriedades e o uso recomendado:
| Caminho | Propriedades | Finalidade |
|---|---|---|
| / |
|
O sistema de arquivos raiz é ativado como somente leitura para manter a integridade. O kernel verifica a integridade do sistema de arquivos raiz durante a inicialização e se recusa a inicializar em caso de erros. |
| /home /var |
|
Esses caminhos visam armazenar dados que permanecem durante todo o período do disco de inicialização. Eles são montados a partir de /mnt/stateful_partition. |
| /var/lib/google /var/lib/docker /var/lib/toolbox |
|
Esses caminhos são diretórios de trabalho para pacotes do Compute Engine (como o serviço de gerente de contas), Docker e Toolbox, respectivamente. |
| /var/lib/cloud |
|
Esse caminho é o diretório de trabalho do pacote cloud-init. |
| /etc |
|
Geralmente mantém sua configuração. Por exemplo, os serviços do
systemd definidos por meio do cloud-init.
É recomendável registrar o estado pretendido das instâncias no
cloud-init, já que o cloud-init é aplicado quando uma
instância é criada ou
reinicializada. |
| /tmp |
|
Normalmente é usado como um espaço de rascunho. Não o use para armazenar dados persistentes. |
| /mnt/disks |
|
É possível montar discos permanentes nos diretórios em /mnt/disks. |
Como ativar e formatar discos
É possível anexar um disco permanente ou criar uma instância com SSDs locais ao usar o Container-Optimized OS. Siga as instruções em Como formatar e ativar um disco permanente ou Formatar e ativar um dispositivo SSD local para o caso de uso apropriado.
É possível ativar os discos criando um subdiretório no
diretório /mnt/disks. Como /etc/ é sem estado no Container-Optimized OS,
não é possível usar /etc/fstab para realizar fsck (verificação de consistência do sistema de arquivos) automaticamente
e ativar os discos na inicialização. No entanto, é possível fazer isso realizando essas
operações na seção bootcmd no
cloud-config.
No exemplo a seguir, o disco DEVICE_ID é montado
no diretório /mnt/disks.
Crie um arquivo de script usando o seguinte conteúdo:
#cloud-config bootcmd: - fsck.ext4 -tvy /dev/DEVICE_ID - mkdir -p /mnt/disks/MNT_DIR - mount -t ext4 -o ... /dev/DEVICE_ID /mnt/disks/MNT_DIRSubstitua:
DEVICE_IDé o ID do dispositivo do disco que você quer formatar e montar.MNT_DIR: o diretório em que o disco será montado.
Consulte a documentação do Linux para conferir um conjunto completo de opções suportadas pelos comandos
fsck.ext4emount.Atualize os metadados da VM para incluir o arquivo de script usando a sinalização
--metadata-from-file.Para criar uma VM, use o seguinte comando:
gcloud compute instances create INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAMEPara atualizar uma instância, use o seguinte comando:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAMESubstitua:
INSTANCE_NAME: o nome da instância de VM.SCRIPT_FILE_NAME: o nome do arquivo de script de metadados