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 / server / Perguntas / 1164787
Accepted
Karl S.
Karl S.
Asked: 2024-09-04 20:54:40 +0800 CST2024-09-04 20:54:40 +0800 CST 2024-09-04 20:54:40 +0800 CST

Limpeza de sistemas de arquivos COW (BTRFS, ZFS, bcachefs) e RAID1 com mdadm no Linux

  • 772

Suponha que eu crie um volume RAID1 de dois discos com mdadm e então crie uma partição BTRFS/ZFS/bcachefs nele. Então os dados em um dos dois discos são corrompidos. Se eu executar uma limpeza, não há como o BTRFS/ZFS/bcachefs corrigir o problema copiando os dados corretos sobre o corrompido. Como aconteceria se fosse o BTRFS/ZFS/bcachefs para gerenciar os dois discos físicos sozinho. Isso ocorre porque o mdadm oculta o fato de que há dois discos físicos subjacentes.

Está certo?

linux
  • 1 1 respostas
  • 51 Views

1 respostas

  • Voted
  1. Best Answer
    Momi_V
    2024-09-05T16:42:26+08:002024-09-05T16:42:26+08:00

    Sim, ao executar em cima do mdadm o scrub do ZFS, etc. não consegue corrigir a corrupção que aconteceu nos discos individuais. Essa é uma das principais razões pelas quais esses sistemas de arquivos preferem fortemente o controle direto sobre os discos sem nenhuma abstração desnecessária como controladores raid ou raid de software.

    ====== Isso é tudo o que você precisa saber. Tudo abaixo são detalhes técnicos irrelevantes ======

    Uma exceção a isso é quando uma unidade auto-relata um erro. A lógica para o raid de software tradicional geralmente se parece com isso:

    1. Se ambas as unidades retornarem o mesmo, está tudo bem
    2. Se uma unidade estiver faltando, a outra será usada
    3. Se uma unidade relatar um erro ("Não tenho certeza sobre esses dados que estou prestes a fornecer"), a outra será usada
    4. Se ambas as unidades retornarem dados, nenhuma retornará um erro e for diferente, não há como saber o que está correto. Normalmente, o primeiro pedaço de dados é assumido como correto, potencialmente não apenas retornando dados incorretos, mas também sobrescrevendo e corrompendo os dados bons na outra unidade.

    Se você estiver usando ZFS, etc., o sistema de arquivos ainda saberá que algo está errado devido às somas de verificação que ele mantém, mas não terá como corrigir porque ele vê apenas um dispositivo de bloco no total, que retornou dados incorretos.

    Em teoria , há uma maneira de fazê-lo funcionar com o mdadm, primeiro formatando cada disco com dm-integrity (isso emula somas de verificação por setor em um nível de dispositivo de bloco) e, em seguida, usando o mdadm. Então, se houver corrupção, o dispositivo de bloco virtual retornará um erro ao mdadm, que pode então fazer as coisas apropriadas para não corromper o raid geral. Isso é semelhante à maneira como os controladores de raid de hardware de nível empresarial costumavam trabalhar com HDDs de setor de 520 bytes compatíveis. Mas, neste ponto, você provavelmente usaria o XFS em cima disso, já que pode simplesmente assumir que os dados retornados estão corretos ou irrecuperáveis.

    Mas "fingir" tudo isso em nível de dispositivo de bloco é lento e ineficiente, que é a razão pela qual sistemas de arquivos como o ZFS foram desenvolvidos: para integrar o RAID e, mais importante, a funcionalidade de soma de verificação por dispositivo com a lógica de nível superior para tornar tudo mais eficiente, por exemplo, tendo apenas um diário, um conjunto de somas de verificação e minimizando o número de operações de E/S separadas para ler/gravar os dados.

    • 2

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 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