Desambiguação: bloco lógico / físico

3

A terminologia BLOCK me confundiu, já que estou fazendo algumas pesquisas sobre tecnologia de disco atualmente.

Minha antiga compreensão

Eu entendo BLOCK geralmente significa um lote de dados visto como uma unidade de E / S inteira, como descrito no página wiki: Bloquear . O que eu pensei um bloco lógico , ou um bloco do sistema de arquivos refere-se à unidade de E / S mínima vista como um todo usada pelo sistema de arquivos específico, para, como a essência de qualquer operação em lote, reduzir as despesas gerais trazidas pela leitura ou escrita de um setor uma vez. E um bloco físico é exatamente o sinônimo de um setor de disco . Este artigo da Oracle confirmou minha compreensão.

Além do mais, acredito que a palavra CLUSTER é apenas bloco do sistema de arquivos da maneira da Microsoft, como sugerido por esta discussão no Reddit .

O que me confundiu

A página wiki: o endereçamento de blocos lógicos que eu encontrei recentemente causou alguma confusão.

Como substituto do endereçamento CHS , parece que o LBA deve lidar com a mesma tarefa do CHS: fornecer endereços para setores , como sugerido em este artigo . Mas sinto a relutância da página wiki do LBA em usar a palavra "setor", bem como de seu título " Bloqueio Lógico Endereçamento".

Então, é LBA apenas uma palavra chique que realmente diz respeito a abordar setores de disco ?

Ou os discos compatíveis com LBA realmente compreendem o conceito de sistema de arquivos / bloco lógico e são capazes de fazer I / O em nível de bloco, escondendo a existência de "setor" do sistema operacional?

Além disso, por favor corrija-me se qualquer pré-requisito da minha pergunta for mal compreendido. Obrigado.

    
por Cedric Sun 13.12.2017 / 13:01

2 respostas

3

I understand BLOCK generally means a batch of data seen as a whole I/O unit

O uso do termo "bloco" é difundido na computação e não está restrito a E / S.

What I thought a logical block, or a filesystem block refers to is the minimal I/O unit seen as a whole used by specific filesystem, in order to, as the essence of any batch operation, reduce the overheads brought by reading or writing one sector one time.

IMO seria descuidado fazer definições abrangentes que englobassem todos os sistemas de arquivos. Esteja ciente de que o tamanho de bloco de E / S dos dados do arquivo pode ser diferente dos metadados do sistema de arquivos. POR EXEMPLO. as gravações em um arquivo podem ser consolidadas em blocos de 4KB (ou maiores), mas o diário do sistema de arquivos pode precisar ser gravado com mais freqüência (com um bloco menor) para garantir a retenção de dados.

"Operação em lote" é um jargão antigo e você está usando o termo de maneira absurda.

And a physical block is exactly the synonym of a disk sector.

Somente no contexto de unidades de disco.
A fita magnética requer que a E / S seja executada em blocos físicos, mas não há conceito de setores com fita.

What's more, I believe the word CLUSTER is just filesystem block in Microsoft's fashion, as suggested by this thread on Reddit.

Um "cluster" é uma unidade de alocação em sistemas de arquivos MS.
Se a E / S é sempre executada nesse mesmo tamanho de bloco é questionável. POR EXEMPLO. Quando o tamanho do cluster é de 64KB e o arquivo inteiro é de apenas 128 bytes, o sistema de arquivos vai gravar 128 setores ou otimizar o I / O para apenas um setor?

So, is LBA just a fancy word which actually concerns addressing disk sectors?

Essencialmente sim (para setores herdados de 512 bytes).

O controlador integrado da unidade de disco moderna realiza o mapeamento do LBA para o setor físico. O cilindro, a cabeça e o setor reais mapeados para um determinado LBA são conhecidos apenas pela unidade, de modo que qualquer tipo de gravação de bit da zona e realocação para setores defeituosos podem ser implementados pela unidade de disco.

Com Formatos Avançados 512e HDDs que usam setores de 4096 bytes e um tamanho de transferência de 512 bytes, o termo LBA é verdadeiramente preciso: o endereço não é de um setor físico, mas sim de um bloco lógico que consiste em um oitavo de um setor.

Or does LBA-compliant disks really understand the concept of filesystem/logical block,

Não tenho certeza do que você quer dizer com "sistema de arquivos / bloco lógico" , mas a resposta provavelmente é não.
É simplesmente um dispositivo de armazenamento sem o conceito de organizar os dados brutos que está armazenando.

Veja Que tipo de API faz um disco rígido? -exibir a unidade?

and is capable of making block-level I/O, thus hide the existence of "sector" from operating system?

O conceito de setor (ou bloco físico) não pode ser eliminado, simplesmente porque essa é a unidade mínima de E / S. Os níveis mais baixos do sistema operacional (ou seja, os drivers de dispositivo) sempre estarão cientes dos atributos de hardware. Mas cada camada de abstração do sistema operacional tentará ocultar esses detalhes. Então, quando você lê um arquivo, você pode não saber se ele foi recuperado de um disco rígido ou DVD ou através de uma rede.

Os controladores de disco FWIW (mesmo os antigos que usaram o endereo CHS) podem realizar operaes de leitura ou escrita multi-sectoriais, e. realizar uma leitura de N setores seqüenciais.

    
por 14.12.2017 / 11:07
1

Você não está errado com as suposições que está fazendo, mas precisa levar em conta o contexto. Dependendo do contexto, o significado da palavra Block muda.

Com o LBA, você está se livrando do complicado esquema de endereçamento do CHS. Com o CHS você tinha que dizer ao seu disco que você quer usar o segundo cabeçote para ler a quinta faixa e o 20º setor nela. Com o LBA você não se importa com esses detalhes. Você está apenas dizendo para você obter o primeiro bloco lógico. Que lógica está sendo usada para determinar qual é o primeiro bloco lógico, depende da unidade, desde que seja um esquema consistente. Solicitar o primeiro bloco lógico duas vezes e obter dados diferentes seria bastante inútil (provavelmente). Essa abordagem também oferece alguma independência da tecnologia de acionamento usada. Por exemplo, pegue um SSD, ele não tem cabeças, faixas e setores. Com o LBA você ainda é capaz de informá-lo para obter o primeiro bloco lógico. Este mecanismo é de nível muito baixo, você realmente não tem qualquer compreensão do que um sistema de arquivos pode ser ou o que um arquivo pode ser. O tamanho real desses blocos depende do hardware. 512 Byte era bastante padrão como um tamanho de setor por um longo tempo, mas hoje em dia (por várias razões) 4 KiB não é incomum.

Assim como uma observação interessante, dê uma olhada em CAV (Constant Angular Velociy) e Velocidade Linear Constante (CLV) e como isso afeta os discos giratórios físicos. O último não é relevante para discos rígidos, mas para outros tipos de discos giratórios físicos. Pode ser interessante conhecer as diferentes abordagens. Assim como a página CHS ou mais especificamente, o Imagem CHS . Você pode notar que na imagem a dimensão física de um setor aumentaria à medida que você avançasse dos trilhos internos para os externos. Como tal, a densidade de informação diminuiria. Repare que eu escrevi que, como a tecnologia atual começou a colocar mais setores nas faixas externas. Embora seja baseado no mesmo princípio ( ZCAV ). É claro que com abordagens ainda mais modernas, como flash drives, os problemas nesse nível serão diferentes (distribuição de desgaste e assim por diante).

Um cluster é geralmente uma concatenação dos blocos lógicos para formar um bloco no nível do sistema de arquivos. Portanto, você pode ter blocos lógicos de 512 bytes em seu hardware físico, mas seu sistema de arquivos funciona usando blocos / cluster de 4 KiB. Assim, para cada bloco que seu sistema de arquivos gerencia, você usará 8 blocos em seu hardware.

Razões para isso podem ser limitações do sistema de arquivos (FAT16 / 32 etc.), desempenho e o tipo de arquivos que você armazena. Com clusters maiores, você tem menos sobrecarga para armazenar arquivos grandes, mas desperdiçará armazenamento em arquivos menores.

    
por 14.12.2017 / 09:36