FreeBSD 10 com Root-on-ZFS usando apenas uma parte do disco

6

Estou tendo um pouco de dificuldade aqui. Vou tentar e ser o mais conciso possível descrevendo meu objetivo:

Estou configurando um servidor de armazenamento para meu empregador, usando duas unidades de estado sólido de 120 GB Intel DC S3500 (e 12 unidades SAS de 2 TB para armazenamento). Eu gostaria de instalar o freebsd10 com root-on-zfs nessas unidades, mas use apenas uma partição pequena (12GB) para criar um espelho zfs para o sistema operacional. O espaço restante, eu quero usar para um ZIL / SLOG (24GB), e o resto para um L2ARC (listrado, tudo o que sobrou, em ambas as unidades).

Não consigo descobrir como dizer ao instalador do freebsd10 para usar apenas 'ada0p2' e 'ada1p2' como meu espelho para instalar o sistema operacional. Eu só tenho a opção de usar as unidades inteiras.

Além disso, tentei instalar como normal e depois usar zfs send e recv para fazer backup, redimensionar a partição com gpart e restaurar um fluxo de réplica do meu pool zroot ... o sistema se recusa a inicializar quando eu faço isso .

Como faço para atingir esse objetivo? Qualquer ajuda com isso seria muito apreciada.

    
por cathode 02.08.2014 / 00:13

3 respostas

4

Eu não acho que o instalador pode fazer o que você quer ainda (embora esteja melhorando ao longo do tempo), então você pode tentar arrancar a imagem de instalação, e executar um shell de root no menu inicial. Você pode usar gpart , zpool e zfs para configurar seus discos manualmente e instalar o sistema a partir dos arquivos na imagem.

Existem inúmeros guias na Internet, mas eu acho que Matthew Seaman é o melhor para minhas necessidades. Ele descreve uma configuração raiz-em-zfs espelhada que suporta ambientes de inicialização (eu uso uma versão ligeiramente modificada da porta sysutils/beadm para gerenciar meus ambientes de inicialização). Ele não fala sobre a configuração de dispositivos de log e cache, mas deve fornecer informações suficientes para que o sistema operacional seja instalado como desejado e, em seguida, você pode adicionar dispositivos de log e cache após o fato.

Existem também alguns bons recursos ligados a partir da página RootOnZFS no wiki do FreeBSD.

Qualquer que seja o guia que você decida seguir, a experiência pessoal sugere que você tenha tempo de executá-lo algumas vezes para ter uma ideia e para garantir que entende sua configuração antes de enviar a caixa para um ambiente de produção.

    
por 04.08.2014 / 11:18
1

Ainda não usei o novo instalador, mas usei o mfsbsd com 9.x, fazendo exatamente o que você descreve.

Existe uma opção para o zfsinstall no mfsbsd:

-z zfs_part_size  : create zfs parition of this size (default: all space left)
O

mfsbsd é muito simples e rápido de usar.

    
por 02.08.2014 / 00:31
0

Aqui está a solução que usei para o problema, para referência futura:

Instalei o freebsd 10.0-RELEASE usando o disco ISO "stock", selecionei root-on-zfs e segmentei os dois SSDs que eu queria usar. Concluí a instalação, depois inicializei no ambiente de live-cd, inseri uma pequena unidade flash USB em um sistema de arquivos, fiz uma captura instantânea zroot @ fresh e usei zfs send -R zroot@fresh > /path/to/removable/zroot.bin para criar um backup de fluxo de réplica da captura instantânea. Para uma boa medida, eu também salvei uma cópia de todos os atributos do conjunto zroot com zpool get all zroot > /path/to/removable/pool.txt , já que isso não está incluído no processo zfs send / recv.

O próximo passo é exportar (ou destruir) o zroot para que ele não esteja mais ativo, o que nos permite usar gpart para diminuir as partições. Em seguida, crie um novo pool nas partições reduzidas, especificando o altroot como algum lugar gravável no ambiente do liveecd, como / mnt ou / tmp. Em seguida, recv do fluxo de réplica de volta ao seu pool zroot recriado: zfs recv -Fdv zroot < /path/to/removable/zroot.bin

A principal área em que eu estava sendo expulso é que todos os guias on-line que instruem você a dizer ao zfs como inicializar a partir do pool usam zpool set bootfs=zroot/boot ou algo similar. No entanto, este é o conjunto de dados errado para inicializar (não existe). o processo root-on-zfs automático do bsdinstall cria zroot/ROOT/default como o bootfs. Verifique sua cópia salva dos atributos do conjunto zroot se precisar replicar outras configurações. Marque os bootfs corretos usando: zpool set bootfs=zroot/ROOT/default zroot e tudo deve estar com molho depois disso.

    
por 11.08.2014 / 07:39