Geralmente estou trabalhando em software e sou fraco em armazenamento. Estou lendo sobre armazenamento de bloco versus arquivo versus armazenamento de objetos e tudo o que encontro fala sobre armazenamento como um assunto totalmente isolado, em vez de incluir o que o sistema operacional veria - que é o que realmente me interessa.
O que me confunde é a ideia de que o armazenamento de blocos e arquivos são completamente separados. Por exemplo, no LVM, você precisa fornecer dispositivos de bloco para gerenciar e, além disso, você tem os respectivos VGs e LVs com um sistema de arquivos em cima disso. Esses dispositivos de bloco não são considerados armazenamento em bloco?
Quando uma pessoa de armazenamento diz armazenamento de arquivos, esse armazenamento de arquivos em algum momento não necessariamente tem armazenamento em bloco embaixo dele? Por outro lado, o armazenamento em bloco não exigiria algo em cima dele para ser útil? Ou um sistema de arquivos ou algum tipo de armazenamento de objeto/proprietário/molho especial?
Por exemplo, se entendi corretamente, uma SAN tem algum tipo de controlador que apresenta LUNs (normalmente) que são montados por servidores (vistos como outro disco rígido no sistema operacional) que colocam sistemas de arquivos neles. Ou isso está incorreto?
Parece estranho porque a maior parte do material de leitura apresenta essas opções aparentemente mutuamente exclusivas e não tenho certeza se estou entendendo mal algo fundamental.
Eu não sou um profissional de armazenamento, mas vou tentar responder à sua pergunta.
O armazenamento em bloco é o armazenamento no qual você pode escrever e ler dados em blocos, daí o nome, tradicionalmente costumava ser setores de 512 Bytes do disco rígido, agora os discos rígidos modernos podem ter setores de 4096 Bytes (os tamanhos dos blocos dos sistemas de arquivos podem ser maiores até 64Kb para xfs por exemplo)
O armazenamento em bloco pode ser particionado em diferentes partições, que é a camada do sistema operacional onde você deseja curvar seu armazenamento em bloco (1 disco rígido em diferentes partes lógicas). Um para inicialização, um para jogos, um para dados, um para trabalho. Isso é opcional, porém, como você mencionou acima do LVM, você pode simplesmente adicionar a unidade de armazenamento em bloco como volume físico sem particioná-lo.
O armazenamento de arquivos é a noção de um sistema de arquivos nesse dispositivo de bloco, pois é uma interface conveniente para organizar e salvar / ler dados nesse dispositivo, também permite escrever blocos específicos como MBR, por exemplo, para permitir que a API do BIOS encontre como inicializar o sistema operacional , mas, além disso, é apenas uma maneira lógica do kernel do sistema operacional interagir e organizar dados em seu dispositivo de bloco ao mesmo tempo para que os usuários tenham uma boa hierarquia baseada em arquivos nesse armazenamento (diretórios no unix, pastas no windows)
Agora você mencionou o LVM que é apenas um programa que permite gerenciar seu armazenamento de maneira mais eficiente (adicionar, remover, espelhar, capturar discos lógicos) é apenas uma camada de abstração de um sistema operacional específico para interagir com dispositivos de armazenamento de hardware subjacentes em um maneira mais simples para um usuário, semelhante a volumes zfs ou gerenciador de volumes Solaris ou software linux RAID(mdraid), todos eles foram criados por conveniência.
O armazenamento de objetos é um armazenamento semelhante ao armazenamento de arquivos, apenas é armazenado de maneira diferente e possui índices de metadados e algumas outras mecânicas para distribuir os dados em diferentes hardwares e armazenar dados (git, AWS S3).
Eu espero que isso ajude.