AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 423587
Accepted
Storm
Storm
Asked: 2018-02-13 04:26:04 +0800 CST2018-02-13 04:26:04 +0800 CST 2018-02-13 04:26:04 +0800 CST

Os instantâneos do BtrFS estão matando meu SSD?

  • 772

Como eu sei, os snapshots do BtrFS na verdade não copiam dados. Suponho que a cópia real seja executada em cada alteração de dados instantâneos.

Então, é correto que a partição BtrFS no SSD com Snapshots ativados duplique o desgaste da memória SSD? Uma gravação para novos dados e a segunda gravação para gravação de diferença para instantâneo.

Eu já utilizo o BtrFS com Snapshots como sistema de arquivos para /partição por um tempo considerável e várias vezes me ajudou muito. Mas agora vou instalar o sistema no SSD.

btrfs ssd
  • 1 1 respostas
  • 2450 Views

1 respostas

  • Voted
  1. Best Answer
    Austin Hemmelgarn
    2018-02-13T12:12:22+08:002018-02-13T12:12:22+08:00

    TL;DR

    Não, isso não reduzirá a vida útil do seu SSD mais do que o uso do BTRFS sem instantâneos.

    Explicação

    Existem algumas maneiras diferentes de implementar instantâneos no software:

    1. Você armazena uma cópia exata de todos os dados sendo capturados. Isso não é muito eficiente (tanto em termos de espaço quanto de tempo), mas é a única opção que armazena uma cópia histórica verdadeira dos dados e é bastante trivial de implementar. Devido aos problemas de eficiência, não é amplamente usado para instantâneos, mas é basicamente isso que um backup completo de um volume faz.

    2. Você armazena uma cópia das diferenças entre o estado atual e os estados históricos dos dados. Esse método apresenta problemas de desempenho ao ler dados porque o sistema precisa calcular o estado dos dados solicitados no momento solicitado. Isso pode ser feito em camadas de duas maneiras:

      uma. Cada instantâneo armazena as diferenças entre o estado atual dos dados e o estado dos dados quando o instantâneo foi obtido. Isso é eficiente em termos de espaço, mas não de tempo (uma vez que o tempo para gravar uma alteração é dimensionado linearmente com o número de instantâneos). O desempenho de leitura é ruim para instantâneos, mas decente para os dados atuais. Esse método não é amplamente usado porque é um tanto complicado de implementar, e o desempenho de gravação é tão ruim que você pode apenas armazenar uma cópia completa.

      b. O primeiro instantâneo obtido arquiva o estado dos dados naquele momento e os instantâneos subsequentes armazenam apenas as diferenças desde aquela cópia, sendo o estado atual um caso especial que muda conforme o usuário o atualiza. Isso só é eficiente em termos de espaço se você estiver apenas modificando os dados existentes e não adicionando ou removendo nenhum dado, mas é mais eficiente em termos de tempo do que 2a. O desempenho de leitura é ruim para a maioria dos instantâneos e dos dados atuais, mas bom para o primeiro instantâneo. É assim que os backups incrementais funcionam e, em um arranjo especial em que cada diferença é em relação à versão anterior, é o que o software de controle de versão faz, mas não é muito usado para instantâneos porque a próxima opção é melhor em quase todos os aspectos.

    3. Os instantâneos são implementados por meio da semântica copy-on-write (COW). Essa é a opção com maior eficiência de espaço e, em média, é mais eficiente em termos de tempo do que ambas as variantes do método 2. Com instantâneos COW, qualquer dado é armazenado uma vez e cada instantâneo que inclui esses dados faz referência a ele. Isso resolve a maioria dos problemas com as opções 1 e 2. Também existem duas maneiras de lidar com instantâneos COW:

      uma. Quando uma determinada parte dos dados for alterada na versão atual, copie os dados antigos para o instantâneo e, em seguida, atualize os novos dados. Isso faz com que a primeira gravação em um local depois de tirar um instantâneo tenha problemas de desempenho, mas as gravações subsequentes sejam boas e o desempenho seja razoável. É assim que o LVM implementa instantâneos, porque é muito fácil acessar um conjunto de dados existente que ainda não estava usando a semântica COW.

      b. Quando um dado dado for alterado na versão atual, crie uma nova cópia desse local na versão atual e armazene os dados alterados lá. Isso evita problemas de desempenho de primeira gravação com a opção 3a, mas incorre em uma penalidade de desempenho ao excluir instantâneos (porque você precisa validar as referências em cada bit de dados para descobrir se pode excluí-lo ou não). É assim que o ZFS e o BTRFS implementam instantâneos (embora o BTRFS use o método 3a em certas circunstâncias muito específicas).

    Como o BTRFS usa o método 3b, o único aumento na sobrecarga do uso de instantâneos no manuseio de metadados, que deve representar uma porcentagem minúscula dos dados reais gravados pelo BTRFS (e as atualizações de metadados acontecem de qualquer maneira, elas são apenas marginalmente menores sem instantâneos).

    • 0

relate perguntas

  • Como ativar a compactação btrfs zstd

  • instantâneos incrementais btrfs: encontre UUID nos dados enviados

  • sincronização incremental de instantâneo btrfs: inicialização com rsync

  • Como criptografar os dados apenas uma vez pelo RAID no nível do sistema de arquivos?

  • Como definir um nível de compactação zstd não padrão na desfragmentação do sistema de arquivos btrfs?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve