Estou executando um sistema Linux (baseado no Gentoo) com um sistema de arquivos BTRFS instalado em um SSD (Toshiba Q300 com rede de 480GB).
Minhas /etc/fstab
parece:
UUID=14cb9b65-... swap swap defaults,noatime, 0 0
UUID=cd7d93b3-... / btrfs defaults,cache,compress=lzo,subvol=@ 0 1
UUID=cd7d93b3-... /home btrfs defaults,noatime,space_cache,compress=lzo,subvol=@home 0 2
UUID=cd7d93b3-... /Data btrfs defaults,noatime,space_cache,compress=lzo,subvol=@Data 0 2
UUID=cd7d93b3-... /mnt/rootfs btrfs defaults,noatime,space_cache,compress=lzo 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /proc proc defaults 0 0
tmpfs /var/log tmpfs defaults,noatime,rw,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,rw,mode=1777 0 0
tmpfs /var/run tmpfs defaults,noatime 0 0
tmpfs /var/spool tmpfs defaults,noatime 0 0
tmpfs /var/lock tmpfs defaults,noatime 0 0
tmpfs /var/cache tmpfs defaults,noatime 0 0
tmpfs /run tmpfs defaults,noatime 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
devtmpfs /dev devtmpfs gid=5,mode=620 0 0
Antes, eu tinha um Intel SSD com 240GB de rede com sistema de arquivos XFS.
Quando eu executei o fstrim -v /
para esse sistema XFS, que eu fazia diariamente, eu recebia mensagens como:
8 gigabytes aparados.
Agora, no nível superior do SSD Toshiba de 480GByte, tenho vários Subvolumes como:
# btrfs subvolume list /mnt/rootfs
ID 264 gen 273 top level 5 path @_original_install
ID 265 gen 152 top level 5 path @home_install_ok
ID 266 gen 270 top level 5 path @_snapshot_install_ok
ID 267 gen 28504 top level 5 path @
ID 275 gen 28504 top level 5 path @home
ID 276 gen 26900 top level 5 path @Data
ID 607 gen 245 top level 5 path @_snapshot_home_20160330
ID 628 gen 3837 top level 5 path @_root_snapshot_20160402
e quando eu começo o fstrim
comando, recebo este resultado:
***************************************** # fstrim -v /mnt/rootfs/@ 177,3 GiB (190331097088 Bytes) getrimmt *****************************************
Por que a quantidade de espaço aparado é de 177 GiB, em vez de 8 ou 10, como no meu antigo SSD formatado em XFS de 240 GB?
Depois de cortar o meu Toshiba SSD de 480 GB novamente logo após o primeiro corte, o resultado é quase o mesmo, 172 GiB foram cortados agora.
Então: faz fstrim
não funciona para o BTRFS?
E você conhece um (muito) bom tutorial / website ou similar, o que explica o BTRFS, incluindo como funciona o subvolume, e os metadados?
Quanto mais infos sobre os últimos btrfs-progs (eu uso a versão 4.4.1), melhor. Se em alemão, seria ótimo também ...
E, é prejudicial ao SSD, ao aparar, ou ao aparar frequentemente?
Respostas:
Das FAQs do Wiki do BTRFS:
Eu vejo que você não está montando com
-o ssd
. Talvez o seubtrfs-progs
não está detectando como um SSD. (Verifica se/sys/block/sdX/queue/rotational
é 0.)"
-o ssd
não habilitará TRIM / descartar "provavelmente porque overwrites excessivos desgastam os drives SSD mais rapidamente.o
fstrim
manpage diz:Além disso, o BTRFS CoW (copy-on-write) é vantajoso para SSDs, minimizando sobrescrições desnecessárias, portanto TRIM não é realmente necessário com o BTRFS. Sistemas de arquivos não-CoW em SSDs precisar TRIM ligado.
Talvez esteja relacionado com
ssd_spread
não estando ligado, de onde você teria um espaço livre maior e menos fragmentado:Como o seu Toshiba Q300 é um SSD de baixo custo, você deve ligar o
ssd_spread
opção de montagem.Isso acontece. o Página de opções de montagem do BTRFS diz "você pode correr
fstrim
comando periodicamente ".Este é o melhor recurso do BTRFS: https://btrfs.wiki.kernel.org/
o btrfs-subvolume manpage é bom. Então é a seção Subvolumes do guia Sysadmin .
btrfsQuota.py
é um script puro para entender os tamanhos de snapshot / subvolume e metadados.O mais recente é a versão 4.5.3 .
Eu recomendo o
btrbk
Script Perl para alavancar o BTRFS para fazer backups automatizados e snapshots. Isso realmente demonstra o poder do BTRFS. O autor, Axel Burri é de Zurique, na Suíça, e, com base no fato de ter um primeiro nome em alemão, ele provavelmente também sabe alemão; talvez ele pudesse apontar alguns recursos alemães do BTRFS.Além disso, fazendo uma pesquisa no WorldCat, este livro menciona o BTRFS, mas está um pouco desatualizado (2011):
fonte
btrbk
está disponível no Alpine Linux para que possa ser executado facilmente em umlxc
oudocker
contêiner se não estiver disponível em sua distribuição Linux: pkgs.alpinelinux.org/…btrbk
SlackBuilds script para construir um pacote do Slackware.