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 Formatação e montagem 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_DIR
Substitua:
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 compatível com
fsck.ext4
emount
.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_NAME
Para atualizar uma instância, use o seguinte comando:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAME
Substitua:
INSTANCE_NAME
: o nome da instância de VM.SCRIPT_FILE_NAME
: o nome do arquivo de script de metadados