Разве файловое хранилище не зависит от блочного хранилища?

Я обычно работаю над программным обеспечением и плохо разбираюсь в хранении. Я читаю о блочном, файловом и объектном хранилище, и все, что я нахожу, говорит о хранилище как о полностью изолированном предмете, а не о том, что будет видеть операционная система - что меня действительно интересует.

Что меня смущает, так это идея о том, что хранилище блоков и файловое хранилище полностью разделены. Например, в LVM вы должны предоставить ему блочные устройства для управления, а затем, помимо этого, у вас есть соответствующие VG и LV с файловой системой поверх этого.Не считаются ли эти блочные устройства блочными хранилищами?

Когда хранитель говорит о файловом хранилище, разве это файловое хранилище в какой-то момент не обязательно должно иметь под собой блочное хранилище? И наоборот, будет ли блочное хранилище не требовать чего-то поверх него, чтобы быть полезным? Либо файловая система, либо какое-то объектное / проприетарное / специальное хранилище соусов?

Например, если я правильно понимаю, в SAN есть какой-то контроллер, который затем представляет LUN (обычно), которые затем монтируются серверами (это выглядит как другой жесткий диск в ОС), которые затем помещают на них файловые системы. Или это неправильно?

Это просто кажется странным, потому что в большинстве материалов для чтения они представлены как, казалось бы, взаимоисключающие варианты, и я не уверен, что неправильно понимаю что-то фундаментальное.

1
задан 27 April 2021 в 04:31
1 ответ

Я не профессионал в области хранения данных, но постараюсь ответить на ваш вопрос.

Блочное хранилище - это хранилище, в которое вы можете записывать и читать данные в блоках, отсюда и название, традиционно оно было 512-байтовыми секторами жесткого диска, теперь современные жесткие диски могут быть 4096-байтовыми секторами (размеры блоков файловой системы могут быть больше например, до 64 Кбайт для xfs)

Блочное хранилище можно разделить на разные разделы, это уровень операционной системы, на котором вы хотите разделить блочное хранилище (1 жесткий диск на разные логические части). Один для загрузки, один для игр, один для данных, один для работы. Это необязательно, как вы упомянули выше LVM, вы можете просто добавить блок блочного хранилища в качестве физического тома, не разбивая его.

Файловое хранилище - это понятие файловой системы на этом блочном устройстве, это удобный интерфейс для упорядочивания и сохранения / чтения данных на этом устройстве, а также он позволяет записывать определенные блоки, такие как MBR, например, чтобы API BIOS находил, как загрузочная операционная система, но помимо этого это просто логический способ для ядра операционной системы взаимодействовать и одновременно упорядочивать данные на вашем блочном устройстве, чтобы пользователи могли иметь красивую файловую иерархию в этом хранилище (каталоги в unix, папки в Windows)

Теперь вы упомянули LVM, это просто программа, которая позволяет вам более эффективно управлять хранилищем (добавлять, удалять, зеркалировать, делать снимки логических дисков). Это просто уровень абстракции конкретной операционной системы для взаимодействия с базовым аппаратным хранилищем. Устройства более простым способом для пользователя, как тома zfs или менеджер томов Solaris или программный RAID Linux (mdraid), все они были созданы для удобства.

Хранилище объектов аналогично хранилищу файлов, просто оно хранится по-другому и имеет индексы метаданных и некоторые другие механизмы для распределения данных на другом оборудовании и хранения данных (git, AWS S3).

Надеюсь, это поможет.

1
ответ дан 7 May 2021 в 19:08

Теги

Похожие вопросы