Esta página oferece uma vista geral do sistema de ficheiros do SO otimizado para contentores e descreve como montar e formatar discos.
Sistema de ficheiros
O esquema do sistema de ficheiros da imagem do nó do SO otimizado para contentores está otimizado para melhorar a segurança do nó. O espaço do disco de arranque está dividido em três tipos de partições:
- Partição raiz, que é montada como só de leitura.
- Partições com monitorização de estado, que são graváveis e com monitorização de estado.
- Partições sem estado, que são graváveis, mas o conteúdo não persiste após o reinício.
Quando usar o SO otimizado para contentores, tenha em atenção a partição se executar os seus próprios serviços que tenham determinadas expetativas sobre a disposição do sistema de ficheiros fora dos contentores.
O sistema de ficheiros raiz está montado como só de leitura para proteger a integridade do sistema.
No entanto, os diretórios iniciais e /mnt/stateful_partition são persistentes e
graváveis.
Trabalhar com o sistema de ficheiros do SO otimizado para contentores
Segue-se uma lista de caminhos no sistema de ficheiros de imagem do nó do SO otimizado para contentores, juntamente com as respetivas propriedades e utilização recomendada:
| Caminho | Propriedades | Finalidade | 
|---|---|---|
| / | 
 | O sistema de ficheiros raiz está montado como só de leitura para manter a integridade. O kernel verifica o sistema de ficheiros raiz de integridade durante o arranque e recusa-se a arrancar em caso de erros. | 
| /home /var | 
 | Estes caminhos destinam-se ao armazenamento de dados que persistem durante a duração total do disco de arranque. Estão montadas a partir de /mnt/stateful_partition. | 
| /var/lib/google /var/lib/docker /var/lib/toolbox | 
 | Estes caminhos são diretórios de trabalho para pacotes do Compute Engine (por exemplo, o serviço de gestão de contas), o Docker e a caixa de ferramentas, respetivamente. | 
| /var/lib/cloud | 
 | Este caminho é o diretório de trabalho do pacote cloud-init. | 
| /etc | 
 | Normalmente, contém a sua configuração (por exemplo, os serviços definidos através de cloud-init).
        É recomendável capturar o estado pretendido das suas instâncias emcloud-init, uma vez quecloud-inité aplicado quando uma instância é criada recentemente, bem como quando uma instância é reiniciada.systemd | 
| /tmp | 
 | Normalmente, é usado como um espaço temporário e não deve ser usado para armazenar dados persistentes. | 
| /mnt/disks | 
 | Pode montar discos persistentes em diretórios em /mnt/disks. | 
Montar e formatar discos
Pode anexar um disco persistente ou criar uma instância com SSDs locais quando usar o SO otimizado para contentores. Siga as instruções em Formatar e montar um disco persistente ou Formatar e montar um dispositivo SSD local para o exemplo de utilização adequado.
Os discos podem ser montados criando um subdiretório no diretório /mnt/disks. Uma vez que /etc/ não tem estado no SO otimizado para contentores, não pode usar /etc/fstab para executar automaticamente o fsck (verificação de consistência do sistema de ficheiros) e montar os discos no arranque. No entanto, pode conseguir o mesmo fazendo essas operações na secção bootcmd do cloud-config.
O exemplo seguinte monta o disco DEVICE_ID
no diretório /mnt/disks.
- Crie um ficheiro de script com 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 o seguinte: - DEVICE_ID: o ID do dispositivo do disco que quer formatar e montar.
- MNT_DIR: o diretório no qual montar o disco.
 - Consulte a documentação do Linux para ver um conjunto completo de opções suportadas pelos comandos - fsck.ext4e- mount.
- Atualize os metadados da VM para incluir o ficheiro de script através da flag - --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 existente, use o seguinte comando: - gcloud compute instances add-metadata INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAME- Substitua o seguinte: - INSTANCE_NAME: o nome da sua instância de VM.
- SCRIPT_FILE_NAME: o nome do ficheiro de script de metadados.