Vender particionamento para mim

45

Muitas vezes me pergunto por que há tanta paixão pelo particionamento de drives, especialmente em sistemas operacionais Unixy (/ usr, / var, et al). Isso não parece ser um tema comum nas instalações do Windows.

Parece que o particionamento aumenta muito a probabilidade de preencher uma partição enquanto outras têm muito espaço livre. Obviamente, isso pode ser evitado com planejamento e planejamento cuidadosos, mas as coisas podem mudar. Eu experimentei isso em máquinas muitas vezes, principalmente em configurações de outros, ou pelas configurações de instalação padrão do sistema operacional em questão.

Outro argumento que ouvi é que simplifica o backup. Como simplifica o backup? Eu também ouvi dizer que isso melhora a confiabilidade. Mais uma vez, como?

Quase 100% dos problemas que encontrei com o armazenamento em disco estão com falha física do disco. Pode-se argumentar que o particionamento pode potencialmente acelerar a falha de hardware, por causa da sobrecarga de um disco ao mover ou copiar dados de uma partição para outra no mesmo disco?

Eu não estou tentando agitar muito o barco, gostaria apenas de ver justificativa para uma antiga prática administrativa.

    
por Zimmy-DUB-Zongy-Zong-DUBBY 01.09.2009 / 21:19

12 respostas

40

  • Fsck mais rápido. Vamos dizer que seu sistema falha, por algum motivo e quando ele reinicia ele precisa rodar um fsck. Com uma partição realmente grande que o fsck pode demorar uma eternidade e nada no sistema funcionará até que o fsck de todo o sistema esteja pronto. Se você particionar o sistema para que a partição raiz seja bem pequena, você poderá obter o sistema em funcionamento e alguns dos serviços básicos em execução enquanto espera que o fsck dos volumes maiores seja concluído.
    • se o seu sistema tiver unidades pequenas ou se houver apenas um serviço no sistema, isso pode não ser realmente importante.
    • Com sistemas de arquivos registrados, isso pode não importar a maior parte do tempo, mas, ocasionalmente, mesmo com um sistema de arquivos com registro em diário, é necessário executar um fsck completo.
  • Segurança aprimorada porque você pode montar um fs somente leitura.
    • Por exemplo, ninguém precisa escrever para / usr durante o uso normal. Então, por que não apenas montar o sistema de arquivos para que ele seja somente leitura. Ter sistemas de arquivos somente leitura quando eles não precisam ser gravados irá prevenir alguns ataques de script-kiddy, e pode impedir que você destrua coisas quando você não quer dizer também.
    • Isso pode dificultar a manutenção do sistema, pois você precisará remontá-lo como leitura / gravação quando precisar aplicar as atualizações.
  • Desempenho aprimorado, funcionalidade para um serviço / uso específico.
    • Alguns sistemas de arquivos são mais apropriados para serviços / aplicativos específicos ou permitem que você configure o sistema de arquivos para que funcione melhor em alguns casos. Talvez você tenha um sistema de arquivos com muitos arquivos pequenos e precise de mais inodes. Ou talvez você precise armazenar grandes arquivos grandes, imagens de disco virtuais.

Eu não acho que configurar muitas partições é algo que você deve fazer para cada sistema. Pessoalmente, na maioria dos meus servidores Linux, eu apenas configurei uma partição grande. Já que a maioria dos meus sistemas tem drives smallish e são de propósito único e servem alguma função de infraestrutura (dns, dhcp, firewall, roteador, etc). Nos meus servidores de arquivos, participo de partições para separar os dados do sistema.

Could it be argued that partitioning can potentially accelerate hardware failure, because of the thrashing a disk does when moving or copying data from one partition to another on the same disk?

Eu duvido muito que um sistema bem particionado tenha qualquer probabilidade de falha maior.

    
por 04.02.2011 / 18:53
19

Um motivo para manter / home / seperate é que você pode reinstalar o sistema operacional e nunca se preocupar em perder dados do usuário. Além disso, há muita segurança na montagem de tudo, seja apenas leitura ou noexec. Se os usuários não puderem executar o código em qualquer lugar em que possam escrever código, será um vetor de ataque a menos.

Eu só me preocuparia com isso em uma máquina pública, já que a desvantagem de ficar sem espaço em disco em uma partição, mas tê-la em outra, é um aborrecimento sério. Existem maneiras de contornar isso como fazer raid de software ou ZFS, onde você deve ser capaz de redimensionar dinamicamente as partições com facilidade, mas não tenho experiência com elas.

    
por 01.09.2009 / 21:28
13
  • Simplificando o backup

Você pode fazer backups (via dumpfs ou similares) de coisas que você quer, não coisas que você não faz. dump (1) é um sistema de backup melhor que o tar (1).

  • preenchendo partições

Esse é um argumento para particionamento também. Os usuários que preenchem suas propriedades não destroem o servidor, não retiram o servidor da web, impedem que os logs aconteçam, impedem que o root faça o login, etc.

Ele também permite mover de forma mais transparente uma seção de seus dados (digamos, / home) para outro disco: copie-o, monte-o. Se você estiver usando algo que permita cópias de sombra / instantâneos / qualquer coisa, você pode até fazer isso ao vivo.

    
por 01.09.2009 / 21:33
9

Eu sempre fui ensinado a manter / var em uma partição separada, então se você tiver um arquivo de log fora de controle, você irá entupir uma única partição, e não a unidade inteira. Se estiver no mesmo espaço que o resto do sistema e você encher 100% seu disco inteiro, ele pode falhar e fazer uma restauração desagradável.

    
por 01.09.2009 / 21:43
8

Todos os argumentos apresentados pelo Zoredache são válidos; pode-se discutir com os detalhes um pouco (ter uma máquina mais rápida para que você possa fazer outras coisas enquanto fsck'ing outros sistemas de arquivos não faz muito bem se a razão do sistema para existir em primeiro lugar estiver nesses outros sistemas de arquivos) ; no entanto, eles são todos um pouco de justificação após o fato.

Nos dias realmente antigos, você não tinha sistemas de arquivos em partições separadas - você as tinha em discos separados, porque os discos eram realmente pequenos. Pense em 10MB. (1) Então você tinha uma pequena partição /, um disco / var, um disco / usr, um disco / tmp e um disco / home. Se você precisou de mais espaço, comprou outro disco.

Em seguida, os discos "grandes" de 50 MB começaram a custar menos que o programa lunar e, de repente, tornou-se possível colocar um sistema inteiro em um disco com uma quantidade utilizável de espaço do usuário.

Ainda assim, com os tamanhos de disco sendo pequenos comparados com o que era possível para o computador gerar, isolar / var e / opt e / home para que o preenchimento de um não derrubasse o computador ainda era uma boa idéia. / p>

Hoje, em uma situação corporativa, não participo os SOs. Os dados são particionados, especialmente se forem gerados pelo usuário; mas freqüentemente é porque é em matrizes de disco de alta velocidade e / ou redundantes de algum tipo. No entanto / var e / usr todos vivem na mesma partição que /.

Em um ambiente doméstico, a mesma coisa - / home provavelmente deve estar em um disco / array separado, para que seja possível instalar / upgrade / break / fix qualquer tipo de SO desejado.

A razão para isto é porque não importa quão grande você adivinhe o seu / var ou / usr ou qualquer árvore que possa ter - você estará hilenamente errado ou você vai ridicularizar demais. Um dos meus antigos colegas de escola jura pelo particionamento, e eu sempre fico triste quando ele termina sentado em um fsck de 180 dias em um sistema que eu criei. Mas eu posso contar em uma mão sobre toda a minha carreira o número de vezes que algo é preenchido / e derrubou o sistema, enquanto eu posso contar uma mão o número de vezes até agora este ano que eu estive olhando para um sistema onde alguém está decidi / var nunca precisaria ser mais do que (digamos) 1GB e estava errado, deixando-me olhando para um full / var e '00s de GB grátis em outro lugar no sistema, todos os quais bem poderiam estar na lua para todos o bem que eles me fazem.

No mundo atual dos discos grandes, não vejo que haja algum motivo real para particionar a árvore do sistema operacional. Dados do usuário, sim. Mas partições separadas para / var e / usr e / var / spool etc etc etc? Não.

(1) = e eu sei que apenas escolhendo esse tamanho, vou conseguir alguém nos comentários dizendo 10MB? Luxo. Por que nossos discos eram meramente ...

    
por 02.09.2009 / 01:25
5

Em resposta a:

It seems that partitioning greatly increases the likelihood of filling one partition while others have a great deal of free space.

Em uma máquina Linux, o LVM (gerenciamento de volume lógico) é usado para evitar isso. A maioria dos sistemas de arquivos permite redimensionar (alguns até online). Eu crio partições diferentes para diferentes usos e formato-os para diferentes sistemas de arquivos (ex .: xfs para arquivos de download grandes que eu possa excluir rapidamente). Preciso de mais espaço? Monte uma nova unidade, mova os dados para ela e monte-os onde os dados costumavam estar. É completamente transparente para usuários e aplicativos.

Com o LVM, você pode adicionar discos ou partições ao grupo de volumes e criar volumes lógicos nesse grupo. Se você deixar espaço livre no grupo de volumes, poderá aumentar as partições que estão sendo preenchidas. Se o sistema de arquivos suportá-lo (ext3, ext4, reiserfs), você pode reduzir uma partição que você acabou de alocar.

Por exemplo: faça uma partição de inicialização em / dev / sda1 faça uma segunda partição (não formatada) / dev / sda2

pvcreate /dev/sda2 # add the partition to LVM
vgcreate vg /dev/sda2 # create a volume group with sda2 in it
lvcreate -n root -L5G vg
lvcreate -n home -L10G vg
lvcreate -n downloads -L100G vg

mkfs.ext3 /dev/vg/root
mkfs.ext4 /dev/vg/home
mkfs.xfs /dev/vg/downloads

mount /dev/vg/root /
mount /dev/vg/home /home
mount /dev/vg/downloads /downloads

Quando você precisar de mais espaço em / downloads (enquanto o sistema de arquivos estiver montado):

lvresize -L+50G /dev/vg/downloads
xfs_growfs /dev/vg/downloads

E agora você tem uma partição de download de 150 GB. Semelhante para casa. Na verdade, eu apenas redimensionei uma "partição" do ext4 lvm hoje. Por outro lado, volumes lógicos não são realmente partições e o que você diz de partições sendo do tamanho errado jives com minha experiência pessoal (mais problemas do que valem).

    
por 02.09.2009 / 00:27
4

O esquema tradicional de particionamento do Unix é definitivamente uma prática da velha escola que não é tão útil quanto já foi. No passado, quando o tempo de atividade do sistema Unix era medido em anos, e você tinha dezenas de centenas de usuários usando shells, a montagem / usr como somente leitura era uma maneira útil de proteger o sistema. Agora, montar novamente os sistemas de arquivos para patch parece mais trabalhoso e não é tão útil.

Na minha universidade, nos velhos tempos, os clusters Unix tinham sistemas de arquivos somente leitura com as ferramentas unix padrão, e os aplicativos complementares estavam em / usr / local, que era um NFS e mais tarde um sistema de arquivos AFS. Parte disso foi conveniência ... quem queria recompilar software em uma dúzia de caixas no cluster quando você podia executar aplicativos em uma rede de alta velocidade, de 4Mb ou 10Mb? Hoje, com gerenciadores de pacotes decentes e muito disco barato, não é grande coisa.

Acho que os processos de pensamento começaram a mudar para mim nas caixas Sun com o Veritas Volume Manager por volta de 1999, o que reduziu consideravelmente o limiar de dor para mover discos.

Hoje, quando penso em particionar, estou pensando em termos de proteção de dados e desempenho. Exemplo ilustrativo:

  • A SAN da camada 1 é muito rápida, muito disponível (5 9s), replicada e muito cara. Missão crítica Bancos de dados ou logs de transações vivem lá.
  • SAN de Nível 2 é rápido, disponível (4 9's), caro. Aplicativos ou dados de menor prioridade vivem aqui.
  • SAN de Nível 3 está disponível (4 9's), barato. Coisas que não são sensíveis ao desempenho vivem lá.

Essas considerações também se aplicam ao Windows. Temos um servidor SCCM que gerencia cerca de 40k clientes. O banco de dados e os logs estão no disco IBM DS8000. Os pacotes de software estão em um EMC Celerra com discos SATA grandes e lentos que custam 60% a menos por GB.

    
por 02.09.2009 / 02:53
2

Eu entendo que essa pergunta não é específica do sistema operacional, certo?

No Windows, costumo dar a todas as minhas máquinas o menor número possível de partições, mas não menos que duas - SYSTEM e DATA. Se a máquina tiver dois discos físicos, um (menor) será SYSTEM, o outro DATA. Se houver apenas um disco, divido-o em duas partições.

A razão para isso é apenas uma - quando eu preciso reinstalar a máquina (e haverá tal tempo), eu não tenho que me preocupar com o conteúdo da partição SYSTEM - eu apenas faço um formato completo em e uma instalação limpa. Isso significa que meus documentos (e preferivelmente o Desktop também) devem ser mapeados para uma pasta no DATA, mas isso é fácil de fazer, especialmente no Vista e mais tarde.

Eu também tentei criar mais partitons (como GAMES, MUSIC, MOVIES, etc.), mas isso só resultou em alguns deles transbordando para outros, criando mais confusão do que ordem.

    
por 02.09.2009 / 00:21
2

(Supondo que um único disco grande esteja disponível), eu coloco home e var em partições separadas para controlar o problema "fora do controle [usuário | arquivo de log] preenchendo todo o espaço" e para facilitar Atualizações do sistema operacional sem tocar em casa, mas deixe o resto junto.

Em hardware mais antigo, foi necessário algum dia ter uma partição boot separada para garantir que a imagem do kernel fosse acessível ao carregador de inicialização.

    
por 01.09.2009 / 22:04
2

Você menciona um preenchimento de disco enquanto o outro tem espaço livre - essa é uma das razões pelas quais participo - porque posso garantir que certas partições não sejam preenchidas. Embora, a forma como as cotas costumavam ser gerenciadas, você teria que atribuir a todos os usuários uma cota 0 nas outras partições, apenas para garantir que eles não começassem a esconder arquivos se eles conseguissem encontrar um diretório que eles poderia escrever para.

Quanto à simplificação do backup - se eu souber qual será o tamanho máximo de cada partição, posso ter certeza de que é um tamanho que se encaixa perfeitamente em uma única fita e pode ser concluído em um período de tempo fixo. / p>

Quanto à confiabilidade, a única coisa em que consigo pensar é o monitoramento - posso ver com mais facilidade quando uma determinada partição está crescendo mais do que deveria, e me dê motivos para investigá-la.

... agora, tudo isso dito, estamos longe dos dias em que cada usuário recebeu sua pequena cota de 20 MB em uma máquina compartilhada. Alguns dos velhos hábitos não fazem sentido - mas quando você tem um processo enlouquecido e preenche / var, que por sua vez enche, e as coisas param, não é tão ruim ter proteção em máquinas de produção. .

Para casa, tenho partições, mas é apenas para facilitar o gerenciamento dos sistemas operacionais instalados.

    
por 02.09.2009 / 16:18
1

Pessoalmente, só uso particionamento nos computadores do meu filho. Eu crio uma partição grande para o sistema operacional e uma pequena partição para uma imagem da partição do sistema operacional para que, quando a máquina for retirada, eu possa restaurá-la rapidamente a partir da imagem.

Em um ambiente corporativo, nunca ouvi um argumento convincente sobre o particionamento.

    
por 01.09.2009 / 21:32
1

Tudo com moderação é bom - pode ser uma boa ferramenta para isolar problemas quando houver uma falha - como preenchimento de disco ou corrupção do sistema de arquivos.

Não confunda com falhas de hardware - elas devem ser tratadas por redundância de hardware (RAID)

Dito isto, os sistemas de arquivos atualmente falham com menos frequência - até mesmo as verificações de integridade online (como o ZFS). Então esperamos que o fsck off-line desapareça em algum momento ...

Por outro lado, fazer isso significa apenas mais trabalho (para você e sua equipe) no final - faça isso com moderação e quando fizer sentido ...

    
por 02.10.2009 / 05:08