Inicialização PXE Linux - quais diretórios devem ser graváveis?

4

Estou planejando configurar um pequeno cluster Hadoop onde os nós escravos são inicializados e executados a partir de um servidor PXE central, para simplificar a implantação e as atualizações, e para permitir que todos os discos dos escravos sejam (quase) monopolizados por HDFS.

No entanto, suponho que ainda terei que reservar algum espaço nos nós escravos para / tmp e / var / log, não quero simplesmente colocá-los em um ramdisk porque gostaria que eles estivessem lá para depuração depois de travar (e porque a RAM é mais escassa que o disco).

Assim, as máquinas podem inicializar o servidor PXE remoto, montar / read-only a partir dele e montar / dev / sda1 através de sdd1 para as partições de dados HDFS, / dev / sda2 para / tmp e / dev / sdb2 para / var / log.

Minha pergunta é, existem outros diretórios que precisam ser graváveis? Assumindo que temos o Hadoop, etc. para logar em / var / log.

(E esta é uma arquitetura sensata em geral?)

EDIT: não se preocupe com swap, eu estou planejando fazer estes swapless, o assassino OOM é preferível a surra.

    
por Andrew Clegg 10.05.2012 / 15:06

3 respostas

1

Você pode estudar o layout dinâmico de sua distro, mas provavelmente você precisa / var em vez de / var / log e em algumas distros existem arquivos em / etc que devem ser graváveis. / home também, a menos que você coloque o diretório home em outro lugar.

    
por 10.05.2012 / 15:13
1

"(E esta é uma arquitetura sensata em geral?) ...."

Eu não diria que sua ideia está errada, mas parece interessante. Resumindo, você configura uma arquitetura sem disco, mas ainda usa o localdisk. Para mim, você está adicionando loops extras.

"para simplificar a implantação e as atualizações ..."

Se seu objetivo é torná-lo mais centralizado e gerenciável. Eu usaria algum tipo de mecanismo de distribuição automatizado. Como no meu caso, eu uso fantoche. O código já está disponível no github. Apenas personalize para suas necessidades. Isso deve cuidar da sua simplificação & gerenciabilidade. Eu construí alguns clusters em nenhum momento usando meus manifestos de marionetes.

    
por 10.05.2012 / 17:22
0

Aqui está uma solução simples para o boot do Slackware 14.2 (inicialização BSD, não systemd) via PXE com o sistema de arquivos raiz servido somente leitura através do NFS.

Eu simplesmente modifiquei /etc/rc.d/rc.S para copiar as pastas que precisam ser graváveis ( /etc e /var ) em um sistema de arquivos tmpfs, monte sistemas de arquivos temporários sobre as pastas originais e mova as cópias para os sistemas de arquivos temporários:

# Copy /etc and /var as tmpfs prior to starting any processes.
echo "Creating volatile copies of /etc and /var in memory..."
mount -t tmpfs -o size=256m tmpfs /tmp
cp -a /etc /tmp/etc
mount -t tmpfs -o size=16m tmpfs /etc
mv /tmp/etc/* /etc/
rmdir /tmp/etc
cp -a /var /tmp/var
mount -t tmpfs -o size=16m tmpfs /var
mv /tmp/var/* /var/
rmdir /tmp/var

O acima foi inserido na parte superior de rc.S , precedido apenas pela linha que define a variável PATH . Isso é executado no início do init, antes de qualquer outra partição ser montada ou iniciar serviços.

Quaisquer alterações nessas cópias na memória são simplesmente descartadas na reinicialização.

    
por 27.06.2018 / 23:42