Уровень блока против хранения на уровне файлов - PullRequest
0 голосов
/ 01 мая 2020

У меня есть несколько таких терминов: Хранилище на уровне блоков и Хранилище на уровне файлов . Может кто-нибудь объяснить, почему один лучше другого?

Возможно, с примерами и алгоритмами c прореживания было бы действительно интересно понять.

Например, статьи в AWS говорят, что AWS EBS можно использовать для баз данных, но почему он лучше, чем File Level?

1 Ответ

1 голос
/ 01 мая 2020

Мне нравится думать об этом так:

  • Amazon Elasti c Блочное хранилище (Amazon EBS) - это блочное хранилище . Это как USB-диск, который вы подключаете к компьютеру. Информация хранится в определенных c блоках на диске, и задача операционной системы состоит в том, чтобы отслеживать, какие блоки используются каждым файлом. Вот почему форматы дисков варьируются от Windows до Linux.
  • Файловая система Amazon Elasti c (Amazon EFS) представляет собой файловую систему , то есть сетевое хранилище . Это похоже на диск H: (или любой другой), который компании предоставляют своим сотрудникам для хранения данных на файловом сервере. Вы монтируете файловую систему на своем компьютере как диск, но ваш компьютер отправляет файлы на файловый сервер, а не управляет самим распределением блоков.
  • Сервис Amazon Simple Storage (Amazon S3) равен объект хранения . Вы даете ему файл, и он сохраняет его как объект. Вы просите об объекте, и он возвращает его. Amazon S3 доступен через API. Он не установлен как диск. (Есть некоторые утилиты, которые могут монтировать S3 как диск, но на самом деле они просто отправляют вызовы API на сервер и заставляют его вести себя как диск.)

Когда дело доходит до изменяя файлы , они ведут себя по-разному:

  • Файлы в блочном хранилище (например, USB-диск) могут быть изменены операционной системой. Например, изменение одного байта или добавление данных в конец файла.
  • Файлы в файловой системе (например, на диске H:) можно изменить, сделав запрос к файловому серверу, очень похожий на хранилище блоков.
  • Файлы в хранилище объектов (например, S3) являются неизменяемыми и не могут быть изменены . Вы можете загрузить другой файл с тем же именем, который заменит исходный файл, но вы не можете изменить файл. (Загруженные файлы называются объекты .)

Amazon S3 имеет другие уникальные атрибуты, например, делает объект доступным через Inte rnet, предлагая несколько классов хранения для недорогих резервных копий и запускающих событий при создании / удалении объектов. Это строительный блок для приложений, а не простой диск для хранения данных. Кроме того, нет предела количеству данных, которые вы можете хранить.

Базы данных

Базы данных любят хранить свои данные в своем собственном формате, который позволяет быстро доступ. Традиционные базы данных созданы для работы на обычных серверах и требуют быстрого доступа, поэтому они хранят свои данные на непосредственно подключенных дисках, которые являются блочными хранилищами . Amazon RDS использует Amazon EBS для блочного хранения.

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

Некоторые современные «базы данных» (если вы можете использовать этот термин ) как Presto может получать доступ к данным непосредственно в Amazon S3 без загрузки данных в базу данных. Таким образом, уровень обработки базы данных отделен от уровня данных. Это облегчает доступ к историческим архивированным данным, поскольку их не нужно импортировать в базу данных.

...