Облачные файловые хранилища становятся все более популярными, и требования к ним постоянно возрастают. Однако современные системы уже не могут полностью удовлетворить все эти требования без значительных затрат на поддержку и масштабирование. Под системой понимается кластер с определенным уровнем доступа к данным. Для пользователей важно, чтобы хранение было надежным и доступность высокой, чтобы файлы можно было легко и быстро получить, а риск потери данных был минимальным. В то же время для поставщиков и администраторов таких хранилищ важна простота поддержки, масштабируемость и низкая стоимость аппаратных и программных компонентов.
Ceph - это свободная и распределенная система хранения данных с открытым исходным кодом. Она предназначена для хранения и управления большими объемами данных на кластере серверов, работающих под управлением Linux. Ceph предоставляет доступ к данным через объектный, блочный и файловый интерфейсы, что делает ее универсальной системой хранения данных для различных приложений. Кроме того, Ceph обеспечивает высокую отказоустойчивость и масштабируемость, используя распределенную архитектуру и репликацию данных на нескольких узлах кластера. Это делает ее популярной системой хранения данных в облачных и корпоративных средах.
Ceph обеспечивает сохранность данных и автоматически восстанавливает утраченные копии при выходе диска, узла или группы узлов из строя. Восстановление происходит на других узлах, пока замены на рабочие узлы или диски не будут произведены.
Благодаря тому, что система Ceph является программно-определяемой и функционирует поверх стандартных файловых систем и сетевых уровней, можно легко создать кластер из различных серверов с разными дисками и объединить их с помощью быстрой сети. Для ускорения обмена данными между серверами можно использовать вторую сетевую карту. Кроме того, настройки и схемы кластера могут быть легко настроены в виртуальной среде. Установка ОС является наиболее трудоемкой частью процесса, в то время как поднятие работоспособного кластера с дефолтными настройками на трех серверах с настроенной сетью может занять всего 5-10 минут, если выполнить все действия правильно.
Так как система является программно определяемой и функционирует на основе стандартных файловых систем и сетевых уровней, возможно использовать несколько серверов с различными дисками и объединить их с помощью быстрой сети для создания кластера. Чтобы ускорить обмен данными между серверами, можно подключить каждый сервер с помощью второй сетевой карты. Настройки и схемы можно легко проверять, используя виртуальную среду. Установка операционной системы является наиболее длительной частью процесса. Поднятие работоспособного кластера с дефолтными настройками займет 5-10 минут при наличии трех серверов с дисками и настроенной сетью.
На вершине операционной системы работают демоны Ceph, которые выполняют различные функции кластера. Один сервер может выполнять несколько ролей, например, монитора (MON) и хранилища данных (OSD). Другой сервер может выполнять роль хранилища данных и сервера метаданных (MDS). В больших кластерах демоны запускаются на отдельных машинах, но в малых кластерах, где количество серверов ограничено, некоторые сервера могут выполнять несколько ролей. Это зависит от мощности сервера и самих ролей. Хранилище можно создать даже поверх RAID или iSCSI-устройства, но в большинстве случаев это нецелесообразно. Возможно создать кластер даже из одной машины и одного диска, но это не будет иметь смысла.
В Ceph существует несколько видов демонов, каждый из которых выполняет определенную роль в кластере. Ниже представлен краткий обзор основных демонов в Ceph и их назначение:
- MON (Monitor) - отвечает за хранение и обработку информации о состоянии кластера, его конфигурации, списке OSD и MDS, мониторинге состояния живых и отключенных узлов. MON также отвечает за выбор лидера кластера и разрешение конфликтов при изменении состояния кластера.
- OSD (Object Storage Daemon) - отвечает за хранение и управление блоками данных в кластере Ceph. OSD управляет непосредственной записью и чтением данных, проверкой целостности и корректности блоков данных, а также репликацией блоков между OSD в кластере.
- MDS (Metadata Server Daemon) - отвечает за хранение и управление метаданными файловой системы CephFS. MDS управляет созданием, изменением и удалением файлов и директорий, обеспечивает целостность и доступность метаданных, а также поддерживает репликацию метаданных между MDS в кластере.
- RGW (RADOS Gateway) - представляет собой HTTP-интерфейс для доступа к объектам хранения Ceph через стандартные протоколы RESTful API и S3. RGW позволяет использовать Ceph в качестве облачного хранилища и обеспечивает доступ к объектам хранения Ceph через интернет.
- CephFS (Ceph File System) - это файловая система на основе объектного хранилища Ceph, которая предоставляет пользователю доступ к файлам и директориям на уровне POSIX. CephFS состоит из нескольких компонентов, включая MDS, RADOS и клиентское ПО.
Каждый из этих демонов выполняет важные функции в кластере Ceph, обеспечивая целостность и доступность данных, мониторинг состояния кластера и управление конфигурацией.
Кластер Ceph состоит из одного или нескольких пулов данных, которые могут иметь различные настройки и назначения. Каждый пул делится на плейсмент-группы, в которых хранятся объекты, к которым обращаются клиенты. Физическое расположение этих объектов определяется дисками, которые закреплены за каждой плейсмент-группой, включая главный диск и несколько реплик-дисков (их количество зависит от фактора репликации пула). При этом реплики могут находиться на разных узлах или в разных датацентрах. В общем, логический уровень определяет, в какой плейсмент-группе находится объект, а физический уровень определяет, на каких дисках он хранится.
Мы уже установили, что Ceph является гибким, простым и удобным решением, которое можно использовать на обычном железе в обычной сети, с минимальными затратами времени и усилий. Ceph также обеспечивает сохранность данных, автоматически принимая меры в случае сбоев железа. Хотя многие соглашаются с тем, что Ceph гибкий, простой и масштабируемый, мнения о производительности кластера различны. Некоторые могут столкнуться с проблемами, такими как задержки в операциях ввода/вывода из-за проблем с журналами или сетью. Хотя Ceph легко установить и запустить, получить отличную производительность может быть более сложно. Поэтому я призываю ИТ-специалистов, имеющих опыт использования Ceph в продакшене, поделиться своими отрицательными впечатлениями в комментариях.
Хотя работа с технологиями может быть сложной и содержать много неочевидных моментов, мы понимаем, что ваше время и данные очень ценны. Чтобы избежать неудобств и потерь, наша команда готова взять на себя настройку и поддержку, так что вам не нужно тратить свое время и рисковать своими данными. Обратитесь к нам в КСОР АйТи, и мы поможем вам успешно внедрить и использовать нужные технологии.