Para aqueles que tropeçam nessa questão em 2016 ... Use ext4. Eu tentei btrfs e a diferença é substancial. Durante um período de 10 dias, as E / S de gravação no ext4 totalizaram 17.800 setores. Btrfs? 490.400 setores. Mesmo SSD, sistema de arquivos idêntico, partições diferentes. Basicamente, a mesma carga de trabalho.
O ext4 e o btrfs ficam "quietos" quando não há atividade de gravação no drive. Isso é bom.
O Ext4 gravará os dados modificados, além de algumas despesas gerais. As despesas gerais estão relacionadas aos dados gravados. Uma gravação em 4K (1 bloco) envia cerca de 50 a 80 blocos de sobrecarga no próximo commit. (O diário ext4 está totalmente ativado)
Modifique um único bloco 4K no btrfs e você enviará entre 4000-5000 blocos de sobrecarga na próxima confirmação. A consolidação padrão é de 30 segundos, acredito. Eu usei 120.
Agora, depende de como você usa o SSD. Como raiz, normalmente há um fluxo de gravações bastante constante e de baixo nível. Arquivos de log, arquivos de ntp drift, reconstruções do man db, atualizações de topologia do opensm, etc. Cada evento martelará uma unidade btrfs com outras 4000-5000 gravações.
Os números de 10 dias acima são para o meu SSD "de gravação limitada". A maior parte desses 17.800 setores foi resultado de uma pequena atualização do sistema. Uma cópia do btrfs não sofreu. Meus escritores são, exatamente, ntp drift, topologia opensm e atualizações do man db (noturno). Nada mais atinge esse disco, exceto coisas ativamente iniciadas, como atualizações do sistema,vim /etc/whatever
etc.
Na verdade, os SSDs sofrerão muitas gravações. Eu simplesmente não consigo entender o motivo de desperdiçá-los, porque a mídia está perseguindo coelhos e arco-íris. Se você quiser pagar esse preço pela COW, vá em frente. Para "performance", nem tanto. É um SSD e você provavelmente poderia colocar o pior "sistema de arquivos" conhecido pelo homem, e ainda obter algum nível de desempenho - apenas por força bruta. Ext4 não é, de longe, o pior sistema de arquivos conhecido pelo homem.
Nenhuma verificação mensal do fs. Experimente o script abaixo. É um hack de 100%, não funciona para pontos de montagem md,
#! /bin/bash
dev=`cat /proc/mounts | grep " $1 " | awk '{print $1}'`
x=`basename $dev`
vmnam=`lsblk $dev -o MOUNTPOINT,PKNAME | grep "$1" | awk '{print $2}'`
vmx=`vmstat -d | grep $vmnam | awk '{print $8}'`
lbax=`smartctl -a $dev | grep LBA | awk '{print $10}'`
tmpnam=`mktemp XXX`
echo "Tracking device: $dev, mounted on $1 (vmstat on $vmnam)"
tim=`date +%s`
timx=`date +%s`
while true
do
vm=`vmstat -d | grep "$vmnam" | awk '{print $8}'`
lba=`smartctl -a $dev | grep LBA | awk '{print $10}'`
if [ "$vm" != "$vmx" ]
then
tim=`date +%s`
dif=`dc <<< "$vm $vmx - p"`
lbad=`dc <<< "$lba $lbax - p"`
timd=`dc <<< "$tim $timx - p"`
echo `date` " (sec=$timd) writes=$vm (dif=$dif) (lba=$lbad)"
vmx="$vm"
lbax="$lba"
timx="$tim"
find "$1" -mount -newer "$tmpnam" -print | grep -v "/tmp"
touch "$tmpnam"
fi
sleep 1
done
Ele informará quantos blocos foram gravados, de acordo com a própria unidade e exatamente quais arquivos foram atualizados. Precisa de raiz privs. Veja por si mesmo. Eu executo o SSD no sistema de arquivos raiz e chamo o script stat.sh. Então...sudo ./stat.sh /