Questão Qual sistema de arquivos linux funciona melhor com o SSD


Do wiki:

A função TRIM vital é suportada pelo sistema operacional Linux, começando com   Kernel 2.6.33 (disponível no início de 2010). No entanto, o suporte entre vários sistemas de arquivos ainda é inconsistente ou não está presente. Partição adequada   o alinhamento também não é realizado pelo software de instalação.

Então, qual sistema de arquivos funciona melhor para SSD e suporta o alinhamento de partição TRIM + durante a instalação e está disponível no Ubuntu?


113


origem




Respostas:


Sistema de arquivos EXT4 + TRIM:

  • EXT4 com TRIM melhora o desempenho reduzindo a gravação desnecessária ciclos para a unidade SSD, pois limitavam os ciclos de gravação reescrita.
  • O Ubuntu e alguns outros tipos de Linux suportam EXT 4 com TRIM fora da caixa.

Partição SWAP:

  • Certifique-se de não ter um espaço de SWAP no SSD, novamente para reduzir os ciclos de gravação.
  • Se você tiver uma unidade mecânica, crie um espaço de SWAP na unidade mecânica e evite tê-lo no SSD.

Alinhamento de Partições:

  • A partição deve começar em um limite limpo de 1MB para que o tamanho do bloco do sistema de arquivos se alinha com o tamanho do bloco do SSD.

Então use EXT4 + TRIM com um SWAP em um disco rígido mecânico ou sem SWAP no SSD.

O acima pode ser implementado consultando a fonte: Como maximizar o desempenho do SSD.


86



GPT é o método moderno usando gdisk E grub 2.0.x, (Eu acho que alguém mencionou abaixo em uma resposta) e MBR é o método legado usando o antigo grub 0.9.7 e fdisk.. você pode encontrar mais aqui: wiki.archlinux.org/index.php/Solid_State_Drives - aliasgar
É desnecessário especificar nodiratime quando você também especifica noatime. Concordo, parece legal e avançado para colegas nerds, mas desde noatime desativa o atime nos inodes e os diretórios são inodes também, é como dizer "lave suas mãos, e lave seus polegares também". :) - Redsandro
Por experiência, posso dizer que nenhum agendador ("noop") funciona mais rápido que o prazo. - drumfire
Não, "Partições de swap Linux Por padrão, as operações TRIM são executadas quando o dispositivo de bloco subjacente suporta TRIM, com a possibilidade de desativá-las ou de selecionar entre operações TRIM únicas ou contínuas. "Portanto, a partição swap deve ser colocada em um SSD para aproveitar tempo de acesso, que incorrerá muito tempo cada troca de página ocorre - phuclv
@Totor Como mencionado no link, também arquivamos respostas inteiras copiadas de outro lugar como plágio. (Ou chame de forma diferente, mas não é aceitável nem com atribuição). Por favor, faça mais perguntas ao Meta. Eu vou deletar esse tópico fora do tópico. - slhck


Resposta curta

  • Escolher ext4, e também monte-o com o discard opção para APARAR suporte, ou use o FITRIM (ver abaixo). Use também o noatime opção se você tem medo de "desgaste SSD".

  • Não altere seu agendador de E / S padrão (CFQ) em servidores multi-aplicativos, pois proporciona justiça entre os processos e possui suporte automático a SSD. Contudo, usar Prazo em desktops para obter melhor capacidade de resposta sob carga.

  • Para garantir facilmente o alinhamento correto dos dados, o setor inicial de cada partição deve ser um múltiplo de 2048 (= 1 MiB). Você pode usar fdisk -cu /dev/sdX para criá-los. Nas distribuições recentes, ele automaticamente cuidará disso para você.

  • Pense duas vezes antes de usar o swap no SSD. Ele provavelmente será muito mais rápido se comparado ao swap no HDD, mas também usará o disco mais rapidamente (o que pode não ser relevante, veja abaixo).

Resposta longa

  • Sistemas de arquivos:

Ext4 é o sistema de arquivos Linux mais comum (bem mantido). Ele fornece bom desempenho com SSD e suporta o APARAR (e FITRIM) para manter um bom desempenho de SSD ao longo do tempo (isso limpa os blocos de memória não usados ​​para acesso de gravação mais rápido). NILFS é especialmente projetado para unidades de memória flash, mas não não  realmente desempenho melhor que ext4 em benchmarks. Btrfs ainda é considerado experimental (e realmente não funciona melhor ou).

  • Desempenho SSD e TRIM:

o APARAR O recurso limpa blocos SSD que não são mais usados ​​pelo sistema de arquivos. Isso otimizará o desempenho de gravação a longo prazo e é recomendado no SSD devido ao seu design. Isso significa que o sistema de arquivos deve ser capaz de informar a unidade sobre esses blocos. o discardopção de montagem de ext4 vai emitir tais APARAR comandos quando os blocos do sistema de arquivos são liberados. Isto é descarte online.

No entanto, esse comportamento implica um pouco de sobrecarga de desempenho. Desde o Linux 2.6.37, você pode evitar usar discard e escolha fazer ocasional descarte em lote com FITRIM (por exemplo, a partir do crontab). o fstrim utilitário faz isso (online), bem como o -E discard opção de fsck.ext4. Você precisará da versão "recente" dessas ferramentas.

  • Desgaste SSD:

Você pode querer limitar as gravações em seu disco, pois o SSD tem um tempo de vida limitado a esse respeito. Não se preocupe muito no entanto, o pior SSD de 128 GB de hoje pode suportar finalmente 20 GB de dados escritos por dia por mais de 5 anos (1000 ciclos de gravação por célula). Os melhores (e também os maiores) podem durar muito mais tempo: você provavelmente o terá substituído até então.

Se você quiser usar troca no SSD, o kernel irá notar um disco não-rotacional e randomize o uso de swap (nivelamento de desgaste no nível do kernel): você verá um SS (Estado Sólido) na mensagem do kernel quando a troca está ativada:

Adicionando 2097148k swap em / dev / sda1. Prioridade: -1 extensões: 1   através de: 2097148k SS

  • Agendadores de I / O:

Além disso, concordo com a maioria dos aliasgarresposta (mesmo que a maior parte tenha sido - legalmente? - copiada de esse site), mas devo discordar parcialmente Agendador parte. Por padrão, o agendador de prazos é otimizado para discos rotacionais ao implementar algoritmo de elevador. Então, vamos esclarecer essa parte.

Resposta longa nos agendadores

A partir do kernel 2.6.29, os discos SSD são detectados automaticamente e você pode verificar isso com:

cat /sys/block/sda/queue/rotational

Voce deveria pegar 1 para discos rígidos e 0 para um SSD.

Agora, o planejador CFQ pode adaptar seu comportamento com base nessas informações. Desde o linux 3.1, a documentação do kernel cfq-iosched.txt Arquivo diz:

CFQ tem algumas otimizações para SSDs e se detecta uma rotação não rotacional   mídia que pode suportar maior profundidade de fila (várias solicitações em   voo de cada vez), [...].

Além disso, o Agendador de prazos tenta limitar os movimentos de cabeças não ordenados em discos rotacionais, com base no número do setor. Citando o kernel do doc deadline-iosched.txt, fifo_batch  descrição da opção:

As solicitações são agrupadas em "lotes" de uma direção de dados específica   (ler ou escrever) que são atendidos em ordem crescente do setor.

No entanto, ajustar este parâmetro para 1 ao usar um SSD pode ser interessante:

Esse parâmetro ajusta o equilíbrio entre a latência por solicitação e   taxa de transferência agregada. Quando baixa latência é a principal preocupação,   menor é melhor (onde um valor de 1 rende primeiro a chegar, primeiro a ser servido   comportamento). O aumento do fifo_batch geralmente melhora o rendimento,   o custo da variação de latência.

Alguns benchmarks  sugerir  aquele Há pouca diferença no desempenho entre os diferentes agendadores. Então, por que não recomendar justiça? quando CFQ raramente é ruim no banco. No entanto, nas configurações da área de trabalho, você geralmente experimentará melhor capacidade de resposta usando o prazo sob carga, devido ao seu design (provavelmente com um menor custo de processamento).

Dito isto, um melhor benchmark tentaria usar o Deadline com fifo_batch=1.

Para usar Prazo em SSDs por padrão, você pode criar um arquivo, digamos /etc/udev.d/99-ssd.rules do seguinte modo:

# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"

63



O que você quer dizer com esse alinhamento de particionamento é cuidado automaticamente em distribuições recentes? Aplica-se também quando você usa o particionamento manual durante, por exemplo, instalação do Ubuntu ou ao fazer particionamento por gparted? - jarno
@jarno nas distribuições mais recentes (por vários anos), ferramentas de particionamento, do fdisk até as coisas gráficas, tendem a auto-default para criar alinhamentos de partições em múltiplos de 1Mb a partir do início do dispositivo. Isso preemptivamente se alinha com 512 bytes, 4k, 8k e meio outro bazillion de tamanho de bloco / cluster que são 2 ^ n na natureza. Torna quase impossível alinhar mal uma partição, a menos que você faça um esforço significativo para isso. - killermist


O artigo do archlinux Unidades de estado sólido diz na seção Escolha do sistema de arquivos :

Existem muitas opções para sistemas de arquivos, incluindo Ext2 / 3/4, Btrfs, etc.

Btrfs 
O suporte do Btrfs foi incluído na versão 2.6.29 do kernel Linux. Alguns acham que não é maduro o suficiente   para uso de produção, enquanto há também os primeiros a adotarem   sucessor potencial de ext4. Usuários são encorajados a ler o    Btrfs artigo para mais informações.

Ext4 
Ext4 é outro sistema de arquivos que tem suporte para SSD. É considerado estável desde 2.6.28 e é maduro o suficiente para uso diário.   Ao contrário do Btrfs, o ext4 não detecta automaticamente a natureza do disco;   os usuários devem ativar explicitamente o suporte ao comando TRIM usando o   opção de descarte de montagem no fstab (ou com tune2fs -o descarte / dev / sdaX).

Tanto o Btrfs quanto o Ext4 cumprem os dois principais requisitos para o uso eficiente do SSD:

  • O sistema de arquivos tem que ser capaz de emitir comandos ATA_TRIM para o SSD subjacente
  • O sistema de arquivos não deve executar gravações desnecessárias no disco

Para desempenho, existem dois outros requisitos:

  • As partições precisam estar alinhadas ao tamanho do bloco do SSD
  • TRIM deve estar explicitamente habilitado para cada partição formatada em Ext4

O primeiro é hoje automático com a maioria dos instaladores do Linux. O fdisk também criará partições na borda de 1024 KB se iniciado com os sinalizadores "-cu".

O segundo é automático para o Btrfs, mas para o Ext4 isso é feito manualmente adicionando "discard" à lista de opções de montagem para cada partição Ext4 no arquivo "/ etc / fstab". Para mais detalhes, veja este como.

Na minha opinião, isso exigia pouco mexer com fstab para Ext4 não é razão para não usar este sistema de arquivos maduro e excelente.


12





BTRFS IMO. O Ubuntu 8.04 e versões posteriores incluíram versões do GRUB que são compatíveis com o GPT. Com a GPT e o Gdisk, você alinhará suas partições para você. Eu acredito que o fdisk fará isso também.

De qualquer forma, aqui está um link para uma instalação do Ubuntu em um sistema de arquivos BTRFS.

http://www.linuxbsdos.com/2011/05/05/how-to-install-ubuntu-11-04-on-a-btrfs-file-system/

Espero que ajude.


-2