Каждый развивающийся проект сталкивается с выбором подходящей системы для хранения данных. И любая такая система должна обеспечивать резервирование, гарантирующее сохранность информации при возникновении разного рода сбоев.
Очень часто при выборе хранилища данных задумываются о параметрах производительности и стоимости, но забывают о надежности, масштабируемости и времени восстановления после сбоя. А затем, в процессе эксплуатации, все описанные факторы начинают проявлять себя.
В настоящее время, кроме традиционных аппаратных систем хранения данных, активно развивается и программная система хранения данных. Эта публикация — обзор современных трендов в области хранения информации.
Для начала несколько слов о том, что сейчас представляют собой аппаратные хранилища с резервированием. Это или RAID массив, или NAS хранилище (Network Attached Storage) — сетевые хранилища. Последние обычно построены на базе той же технологии RAID. Диски могут быть объединены в
Как технология, RAID (определение — Redundant Array of Independent Disks) устарела. Она верой и правдой служила нам более 30 лет (впервые термин «RAID» прозвучал в 1987 году), но сейчас мы наблюдаем ее закат.
RAID массив, как мы уже знаем, представляют собой несколько накопителей (жесткие диски, реже — SSD), объединенных между собой. Методика, по которой выполняется резервирование информации, называется уровнем RAID. RAID 1 — обычное зеркалирование, когда в наличии имеется пара накопителей, и записываемые данные дублируются непосредственно на оба диска массива. Самый популярный из уровней — RAID 5. Он более экономичен — данные распределяются по всем винчестерам массива, минимальное количество — три.
Экономичным это уровень делает то обстоятельство, что при нем больше пространства остается именно под запись данных (особенно, по сравнению организацией через RAID 1). Характерное свойство уровня RAID 5 в том, что он обеспечивает посредственную скорость записи, зато отличное время чтения, поскольку потоки данных с ряда накопителей массива распараллеливаются.
Однако, RAID массив имеет свои недостатки.
Из всего этого можно сделать вывод, что резкий рост объемов установленных дисков при медленном приросте скорости передачи данных с диска привел к катастрофически долгому времени восстановления
При всем этом стоимость аппаратных
Обратите внимание, что мы постепенно смещаемся к программным решениям. Именно программная система хранения данных обеспечивает следующие преимущества:
Но обо всем по порядку.
В мире аппаратных решений вариантов не так и много —
А вот в случае, когда используется программная система хранения данных — выбор огромный. При этом программный RAID мы здесь рассматривать не станем, поскольку это тот же RAID, только еще более медленный, хотя и более дешевый.
Вариантов много: Parallels Cloud Storage, MooseFS, Ceph, Lustre, GlusterFS — это лишь наиболее популярные.
Программная система хранения данных дает максимум решений для различного рода оптимизации. Данные могут быть разделены по общему кластеру, либо по всем установленным дискам кластера, и если из строя ввиду поломки или ошибки выйдет один из дисков, автоматически запускается процесс репликации. Преимущество очевидно — нет необходимости ждать, пока администратор заменит сломавшийся диск, не говоря уже о скорости самой репликации. На рис. 1 показана диаграмма времени репликации классического RAID уровня 1 и кластера PStorage, построенного на базе 7 и 14 серверов. Используются
Рис. 1. Время репликации 1 Тбайт
Полагаю, результаты не нуждаются в
Мы здесь не станем рассматривать, чем отличаются одна от другой программная система хранения данных. Если вам
Рис. 2. Сравнение разных программных систем хранения данных (иллюстрация с ресурса https://www.yet.org/2012/12/staas/)
Итак, Ceph — это система хранения данных отличающаяся открытым исходным кодом, обеспечивающая высокую живучесть системы. Действует в составе группы из нескольких
Ceph, создающая NAS хранилище, построена на следующих архитектурных принципах:
Ceph имеет удобное управление и позволяет достичь высокой производительности, неограниченной масштабируемости, отказаться от архаичных систем хранения данных. Ceph — это унифицированное решение для безопасного хранения данных уровня предприятия, работающее на обычных аппаратных средствах, это эффективно с экономической стороны, ведь система получается мультифункциональной.
Можно долго и относительно скучно описывать архитектуру Ceph, объяснять термины, но об этом написано множество материалов, ссылки на которые будут приведены в конце этой статьи.
Рис. 3. Штатный режим работы Ceph (анимация)
Рис. 4. Что происходит в случае сбоя
На рис. 3 показано, как работает Ceph в штатном режиме, а на рис. 4 — что произойдет с Ceph в случае сбоя. При повреждении или отказе отдельного узла (или диска) система Ceph обеспечит сохранность данных, и в автоматическом режиме восстановит их на других узлах копии — до того момента, пока они не будут заменены или отремонтированы. Нужно отметить, что, в отличие от RAID, ребилд происходит без секунды простоя и полностью незаметен для клиентов. Потеря одной из копий данных переводит систему в состояние degraded. После этого копия объекта переносится на рабочий узел и выполняется ремаппинг. Новая карта будет содержать новое расположение потерянной копии объекта. Все это выполняется автоматически — без вмешательства администратора и, конечно же, незаметно для пользователя. Задержка не более пары секунд.
Откуда появляется высокая производительность? Данные в Ceph квантуются на маленькие части и далее разносятся псевдослучайно по OSD (Object Storage Device) — устройству хранения объектов. Это приводит к тому, что реальные операции ввода/вывода пользователя система равномерно «размазывает» по всем дискам, установленным в единый кластер, что позволяет снизить конкуренцию между клиентами за дисковый ресурс (в качестве бонуса клиент получает существенно большие лимиты по пропускной способности и IOPS).
Тайна быстродействия Ceph касается и журналов. Все проводимые операции записи сначала отправляются в OSD, а затем, асинхронно переносятся в постоянное хранилище. Именно по этой причине советуют размещать журнал на SSD, что существенно ускоряет операции записи.
Ceph (https://ceph.io/) — система свободная и бесплатная. Но некоторые компании, в том числе и общеизвестная Red Hat, могут продавать собственные инновационные решения, сформированные на базе Ceph. Клиент сможет выбрать уже готовое решение, например, Red Hat Ceph Storage, а можете построить собственный кластер, и это будет стоить гораздо дешевле (особенно, учитывая, что большая часть оборудования у вас уже есть).
Итак, преимущества внедрения Ceph выглядят так: