Partição ideal do sistema de arquivos UNIX + Estratégia de instalação

16

Ao particionar um novo (s) disco (s) do sistema para UNIX, qual é a sua estratégia preferida para desktop e / ou servidores?

Inclua o layout da partição do disco, o (s) formato (s) do sistema de arquivos e as opções, pontos de montagem, níveis do RAID, grupos e volumes LVM, criptografia e outras configurações relevantes.

cmcginty
fonte
A questão parece quase uma duplicata disso ( serverfault.com/questions/1145/… ).
Zoredache
isso é para uma estação de trabalho, um servidor de teste ou um servidor online totalmente maduro?
djangofan

Respostas:

9

Sou fã do LVM para esse tipo de problema. Você só precisa de algum espaço para / boot (eu uso cerca de 100 MB). Combinado com sistemas de arquivos que podem crescer e encolher dinamicamente (ou pelo menos crescer), você nunca precisa pensar em pequenas partições novamente.

Na minha área de trabalho, uso um LVM com XFS como sistema de arquivos para todas as partições. Crio o menor possível e deixo que cresçam conforme preciso de mais espaço.

Martin
fonte
7

Se for Linux, tenha um / boot separado.

Para outras variantes do Unix, normalmente, eu recomendo partições para / e / var, os dados geralmente são montados em / u001, / u002 etc.

Anteriormente, havia uma necessidade de particionar fortemente, pois o espaço em disco era limitado e você não queria que uma única partição preenchida derrubasse todo o sistema. Com o grande aumento de armazenamento disponível hoje, bem como as inúmeras opções de redimensionamento e virtualização disponíveis, a necessidade de muitas partições IMO diminuiu. Isso, associado ao fato de ser um incômodo mudar as coisas quando você tem muitas partições, significa que, se você puder se safar com menos, faça isso.

Trocar como 2xRAM não faz sentido quando você diz 32 GB de memória. Lembre-se de que as "regras" são realmente diretrizes e algumas simplesmente não fazem sentido à luz do hardware mais novo disponível agora.

Jauder Ho
fonte
2
+1 ao mencionar a necessidade de particionamento diminuindo recentemente, além disso, se você precisar de mais espaço em / home, poderá sempre montar um novo disco rígido.
Spoike
11
+1 - Concordo com a subestimação da necessidade de jogos de particionamento malucos na maioria dos sistemas. Se você sabe que precisa / var estar em um disco rápido por causa de algum aplicativo, que assim seja. Frequentemente, quando encontro jogos de particionamento malucos em sistemas de produção, é um único volume RAID-1 de hardware dividido em várias pequenas partições, todas esperando para serem preenchidas e precisam ser redimensionadas (para trabalhar para o administrador, aparentemente). Se você sabe que possui um aplicativo para algum tipo de esquema de partição complexo, faça o mesmo. Se não, você não.
Evan Anderson
5

O planejamento de uma boa estrutura de particionamento depende muito de saber como você usará o sistema. Qualquer conselho aleatório que não leve em consideração o que o sistema está fazendo não será particularmente útil.

Todos os sistemas de arquivos sofisticados podem ser úteis de vez em quando, mas se você deseja um sistema estável, pode ser uma ideia melhor manter o sistema de arquivos 'padrão' (por exemplo, ext3), a menos que você tenha um bom motivo para usar outra coisa.

Como o RAID é bom, eu sempre executo o RAID1 em todos os meus computadores pessoais porque tive muitos discos rígidos com falha.

A criptografia com algo como dm-crypt é boa se o seu sistema for um dispositivo portátil, tiver dados de alto valor ou apenas paranóico.

Como você está planejando suas partições, é muito útil ter um bom entendimento de coisas como o Padrão de Hierarquia do Sistema de Arquivos e se / como o unix escolhido se desvia do padrão.

O uso do LVM pode tornar muito mais fácil mudar de idéia no futuro e ajustar suas partições sem a necessidade de reinicializar., E sua capacidade de criar snapshots pode ser muito fácil de criar bons backups. Use o LVM e não aloque imediatamente todo o seu espaço.

Zoredache
fonte
5

Há duas boas razões para particionar além do tipo FS:

  1. Evite o excesso de derramamento de um aplicativo que afeta a funcionalidade do sistema. Se o aplicativo for preenchido /usr, é útil ter algum espaço restante /varpara permitir que o sistema continue e os registros sejam gravados.

    Jauder disse acima que isso é negado pelo tamanho dos discos rígidos hoje - não acho que isso seja verdade. Nossas unidades podem ser maiores, mas os dados que estamos entregando estão sempre aumentando. Não há necessidade de ficar complacente.

  2. Opções de montagem. Você pode definir com mais cuidado quais permissões cada partição deve adotar. Por exemplo, é uma boa prática não permitir que arquivos sejam executados, principalmente suid, /tmppois é um vetor de ataque comum para máquinas que servem aplicativos da Web. A menos que você esteja executando cadeias, você não deve esperar ver nós de dispositivos em qualquer outro lugar /dev. E assim por diante.

por exemplo.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  
Dan Carley
fonte
4

Particionamento de discos físicos
Comece com no mínimo 2 discos:

# 1 100 MB, ID = 83 (Linux), sinalizador de inicialização ativado
# 2 restante, ID = FD (Linux Raid Auto)

A partição de 100 MB é para o volume / boot. Deixo isso em todas as minhas unidades (mesmo que não sejam de inicialização) para permitir flexibilidade, para que qualquer unidade possa ser ativada posteriormente para a inicialização. Se os discos não corresponderem ao tamanho ou se você tiver um número ímpar (500 GB, 250 GB x 2), divida as partições da unidade de 500 GB para corresponder aos discos menores.

RAID
Usando as partições de 100 MB sdae sdbcrie um volume RAID1 (espelho) para /boot. Isso se torna md0.

md0 / boot 100MB Ext2

Não se preocupe em usar um FS exótico no / boot, não vale a pena.

O espaço restante pode ser configurado em diferentes métodos. Opto por um RAID10 (espelho / faixa) usando pedaços de 64 K e "2 cópias distantes" para velocidade. Isso oferece muita flexibilidade para atualizar incrementalmente as unidades abaixo da linha. As outras opções são fazer um RAID5 / 6. No entanto, o espaço utilizável será limitado à menor partição e NÃO use partições dos mesmos dispositivos. Nomear os novos arrays RAID md1, md2e assim por diante.

LVM
Pegue todas as matrizes RAID md0, exceto , e coloque-as em um único grupo de volumes LVM nomeado lvm_vg0. Se você tem volumes RAID5 e RAID10, provavelmente é melhor não combiná-los, mas acho que não faria mal.

Particione o VG0 para as montagens restantes do sistema. Lembre-se de que é relativamente fácil adicionar mais espaço, se necessário, para que esses números possam ser um pouco conservadores.

lvm_vg0-root / 8GB Ext3 / ReiserFS (arquivos principais de distribuição)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS (dados do usuário, documentos)
lvm_vg0-data / data XFS de 60 GB + (mídia, arquivos grandes, vm)

Os sistemas de arquivos XFS não podem ser reduzidos, lembre-se disso. Além disso, provavelmente não há suporte para reduzir um volume raiz online.

Atualizando Se você deseja trocar discos por tamanhos maiores, há algumas opções. O mais fácil é adicionar unidades em pares ou mais e adicionar as novas matrizes RAID ao LVM VG atual.

Outra opção é adicionar uma única unidade que seja> = à soma do espaço atual. Por exemplo, se você tiver dois dispositivos de 100 GB no RAID10, poderá adicionar um novo dispositivo de 200 GB e espelhá-lo usando os dois dispositivos antigos. Isso é mais propenso a erros, mas funcionará.

Se necessário, os md#dispositivos podem ser removidos do LVM VG sem perder dados. Isso pode ser feito se houver espaço LVM livre suficiente para mudar todos os blocos LVM usados ​​do md#dispositivo para outros. O LVM pode usar apenas o espaço que não foi atribuído a um LV, portanto, um sistema de arquivos vazio não conta como espaço "livre".

cmcginty
fonte
11
Não estou convencido pelo medo de sistemas de arquivos exóticos no / boot. O ext3 e o XFS não são mais exóticos em 2009. Costumava ser uma preocupação quando os liveCDs não eram empacotados com drivers para eles, mas quase todos são hoje em dia.
21711 Dan Carley
@ Casey, você pode reduzir um volume Ext3 "ao vivo", desde que você tenha espaço livre suficiente para as coisas mudarem. Sim, esta é uma experiência de roer unhas, mas eu fiz isso e funciona como anunciado. Apenas tenha MUITO cuidado com os parâmetros.
Avery Payne
2

Acabei de rodar estações de trabalho Linux. Eu uso o sistema de arquivos ext3 e os tamanhos dependem um pouco do tamanho dos discos, sendo mais generosos com as partições nos discos maiores. Eles estão aproximadamente na ordem em que aparecem na tabela de partição:

  • / boot - 100 MB
  • trocar espaço - 2xRAM
  • / usr - 10-20 GB
  • / - 5-10 GB
  • / var - 1-2 GB
  • / tmp - 1-2 GB
  • / usr / local - 10 a 20 GB
  • / home - tudo o resto.

Nas estações de trabalho de minha esposa na universidade, que possuem duas unidades de 750 GB, criamos, além do acima, uma dúzia de partições de ~ 100 GB nas várias unidades montadas em / data / N em que N era um número de 1 a 12 Ela usa esses dados para armazenar os dados de seus diferentes projetos de pesquisa.

dagorym
fonte
Pessoalmente, não vejo a vantagem de ter / var, / usr separados para uma partição diferente. Enquanto / usr / local pode ser uma boa idéia, se você tiver um software instalado personalizado (= não instalado via gerenciamento de pacotes), os dois mencionados são bastante inúteis. Também 2xRAM como swap é desnecessário. Se o seu sistema começa a trocar tudo fica lento, então você deve evitar isso no começo. Pessoalmente, só tenho uma partição de swap com o Ramsize + X porque às vezes uso a suspensão em disco.
Martin
2
@ Martin, Na caixa do linux que atua como um cache do squid, você deseja que seu diretório de spool e o diretório de log estejam em um disco rápido, e geralmente não é necessário que esse disco seja confiável. Pode-se colocar (/ var) seu spool em um RAID0 (faixa) e deixar todo o resto em uma unidade mais lenta.
Zoredache
@ Martin - Você está certo, dividir / usr provavelmente não é necessário e nem sempre faço mais. A troca = 2xRAM é um antigo hábito que restava desde os dias em que eu configurava sistemas com apenas 256 MB de RAM ou menos.
Dagorym
11
na verdade, dividir / usr e / var permite ativar o registro em diário em um e não no outro.
675 Scott
11
Colocar o / var em uma partição separada garante que somente o / var possa ser preenchido com arquivos de log, o que de outra forma poderia ter deixado o sistema de joelhos.
Wzzrd 17/06/09
1

uso noatime em todos os discos (a menos que você tenha um motivo para não fazê-lo) Eu monto / tmp em tmpfs, embora isso possa não ser tão bom em um servidor, eu me certificaria de que seja uma partição separada e a monte nodev, nosuid, noexec, noatime . Eu sempre uso o ext2 para / boot, para não ter que me preocupar em mudar as coisas do fs, danificando minha capacidade de inicializar com o grub. ext4 em todo o resto, eu uso journal = data on / home, o que provavelmente atrasa um pouco as coisas (pois não possui desalocação), mas nunca perdi dados com journal = data também, e sendo um dos mais recentes / melhores prostituta, às vezes meu sistema trava e eu tenho que reiniciá-lo (porque tentei algo como kms e encontrei um bug).

xenoterracida
fonte
11
Não se esqueça de usar 'nodiratime' também, caso contrário, você pressionará seu vfs_cache_pressure com inodes (além das gravações reais no disco!).
Gazzonyx
0

Uau, boa pergunta. Está navegando para a resposta perfeita para isso por yonks.

Eu, pessoalmente, tenho 50Mb / boot ~ 8GB / eo resto vai para / home Isso está longe de ser perfeito. Preciso investigar sistemas de arquivos alternativos, atualmente uso o ext3, mas ouvi ótimas coisas de outros sistemas de arquivos, por exemplo, o XFS.

Normalmente, também crio um contêiner de arquivos para / tmp apenas para que eu possa ser mais flexível com ele no futuro.

Adam Gibbins
fonte