Построение архива файлов научных космических данных на основе GlusterFS Боярский М.Н., Назиров Р.Р., Шевченко М.И. ИКИ РАН "GlusterFS", the Gluster ant.

Презентация:



Advertisements
Похожие презентации
Создание программно- аппаратного комплекса архива научных космических данных Назиров Р.Р., Боярский М.Н., Шевченко М.И. Институт космических исследований.
Advertisements

Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Георгий А. Гаджиев. Обзор компонентов System Center 2012 R2 Отказоустойчивость фабрики Отказоустойчивость компонентов System Center.
Создание облачной инфраструктуры в Международном университете природы, общества и человека «Дубна» Проректор по информатизации и инновационной деятельности.
1 Сетевое программное обеспечение Лекция 6 Сетевые файловые системы 4. Примеры сетевых файловых служб 4.1 FTP ( File Transfer Protocol) протокол передачи.
КОНОПЛЕВ В.В., НАЗИРОВ Р.Р. ИКИ РАН ИНФОКОММУНИКАЦИОННЫЕ ТЕХНОЛОГИИ В НАУЧНЫХ ИССЛЕДОВАНИЯХ ТАРУСА, НОЯБРЬ 2012 Экспериментальное вычислительное "облако"
Exchange 2010: Новые возможности по хранению данных и обеспечению отказоустойчивости в Exchange 2010, backup и восстановление с использованием System Center.
Методы обеспечения отказоустойчивости Exchange 2003 Андрей Пономарев Сергей Халяпин.
Администрирование информационных систем Лекция 4. Система управления базами данных.
Windows 2003 Server. Обзор продукта Денис Креминский инженер отдела поддержки
Файловая система Линукс В системе UNIX все есть файл ; а если что - то не файл, то это процесс
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Омский университет. Центр Интернет ОмГУ Математический факультет ОмГУ.
Докладчик: Кин Кирилл, ВМИ-115 Windows Azure Демонстрация разработки и внедрения простейшего сервиса.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
SaaS платформа для Online- казино Граков Алексей. Antalika.com.
Павел Светличный Senior iOS Developer Svitla Systems Киев, Построение кластера на базе Apache CouchDB.
Транксрипт:

Построение архива файлов научных космических данных на основе GlusterFS Боярский М.Н., Назиров Р.Р., Шевченко М.И. ИКИ РАН "GlusterFS", the Gluster ant logo, "Red Hat" are trademarks or registered trademarks of Red Hat, Inc.

Содержание Постановка задачи Обзор технологии GlusterFS Масштабирование и отказоустойчивость Доступ к данным Администрирование Опыт использования GlusterFS в ИКИ

Постановка задачи Работа выполняется в рамках Программы 22 президиума РАН «Фундаментальные проблемы исследований и освоения Солнечной системы», проект «Создание программно-аппаратного комплекса архива научных космических данных». Основные требования к архиву: Надежность хранения данных Масштабируемость архива Экономичность построения Простота развертывания Простота доступа к данным Поддержка со стороны разработчиков Производительность менее приоритетна

Архив научных космических данных ИКИ РАН гг: 200ГБ с приборов на 7 КА серии Прогноз август 2011-ноябрь ГБ от 2 приборов плазменно-магнитного комплекса «Плазма-Ф» на КА «Спектр-Р» эксперимента «Радиоастрон»

Что такое GlusterFS? POSIX-совместимая файловая система Без сервера метаданных Сетевая система хранения данных (NAS) Позволяет использовать неоднородное широкодоступное аппаратное обеспечение Единое глобальное пространство имен Основана на стандартах для сетевых клиентов и протоколов Гибкое и оперативное масштабирование Объем – петабайты и далее Производительность – тысячи клиентов

GlusterFS и традиционные решения Обычные NAS имеют ограничения по масштабируемости и избыточности Распределенные файловые системы обычно ограничены зависимостью от сервера метаданных Сети хранения данных (SAN) дороги и сложны (но производительны и масштабируемы) GlusterFS: Линейно масштабируема Произвольная степень избыточности Минимальные «накладные расходы» Простота и дешевизна развертывания

Терминология Brick («кирпич») Единица хранения/строительный блок GlusterFS Точка монтирования локальной файловой системы на узле (сервере хранения) Translator (транслятор) Реализация логики отношения битов хранения и глобальным пространством имен Многоуровневая реализация функциональности Volume (том) «Кирпичи», объединенные и обработанные трансляторами Node (узел) Сервер, на котором выполняется glusterd и хранится экспортируемый том

Диски, LVM и файловые системы Непосредственно подсоединенные диски (DAS/JBOD) Аппаратный RAID Тома LVM Файловые системы: XFS, EXT3/4, BTRFS Требуется поддержка расширенных атрибутов (extended attributes)

Доступ к данным Собственный («native») клиент Файловая система в пользовательском пространстве Клиент считывает информацию по томам с основного или запасного сервера и далее непосредственно взаимодействует с каждым сервером кластера Лучшая производительность при записи файлов и при массовом одновременном доступе NFS Встроенная служба для стандартных клиентов NFS v3 Лучшая производительность при чтении большого числа мелких файлов SMB/CIFS Требуется сервер Samba Сервер монтирует GlusterFS и экспортирует ее

Монтирование через /etc/fsab Собственный («native») клиент x2.c1.cosmos.ru:/gv2 /gv2.fuse glusterfs defaults,backupvolfile-server=x3.c1.cosmos.ru,log- file=/var/log/gluster.log 0 0 NFS x1.c1.cosmos.ru:/gv1 /gv1 nfs defaults,proto=tcp,vers=3 0 0

Программные компоненты glusterd Демон гибкого управления томами Выполняется на всех серверах хранения Интерфейс: командная строка gluster glusterfsd Демон, управляющий «кирпичами» GlusterFS Один процесс на «кирпич» Управляется glusterd

Программные компоненты glusterfs Демон-сервер NFS Демон-клиент FUSE mount.glusterfs Обеспечивает монтирование FUSE gluster Консоль Gluster (интерфейс командной строки)

Все вместе:

Гибкое хеширование Расположение данных определяется хешем имени файла и путем файловой системы Нет центрального сервера метаданных Нет узкого места производительности Уменьшаются риски Гибкость Файлы назначаются виртуальным томам Виртуальные тома распределяются по «кирпичам» Тома легко переназначаются «на лету»

Масштабируемость: распределение Вертикальная: Добавление дисков и файловых систем к серверу Горизонтальная Добавление серверов в доверенный пул

Масштабируемость и отказоустойчивость Распределенный том: Файлы равномерно распределяются между серверами RAID 0 файлового уровня Потеря данных при аппаратных сбоях

Реплицируемый том: Копирование файлов на несколько «кирпичей» RAID 1 файлового уровня Отсутствие горизонтальной масштабируемости Масштабируемость и отказоустойчивость

Распределенно-реплицируемый том: Распределение файлов по реплицируемым «кирпичам» RAID 1 / улучшение производительности чтения Горизонтальная масштабируемость

Производительность Чередуемо-реплицируемый том (striped- replicated): Распределение частей файла по дискам с зеркалированием «кирпичей» Максимальная производительность при работе с большими файлов с защищенностью от сбоев

Георепликация Асинхронная репликация через ЛВС или Интернет Модель «ведущий-ведомый» (master-slave) с каскадированием Инкрементальное реплицирование Важна синхронизация времени на всех ведущих узлах

Репликация томов и георепликация Реплицируемые томаГеорепликация Зеркалирование данных между узлами кластера Зеркалирование данных между географически разнесенными кластерами Обеспечивает высокую доступность Обеспечивает резервирование данных для восстановления после аварии Синхронная репликация (каждая файловая операция выполняется на всех «кирпичах») Асинхронная репликация (периодическая проверка изменений файлов и синхронизация изменений)

Примеры использования

PANDORA INTERNET RADIO - Private Cloud: Media Serving Challenge Explosive user & title growth As many as 12 file formats for each song Hot content and long tail Solution Three data centers, each with a six-node GlusterFS cluster Replication for high availability 250+ TB total capacity Benefits Easily scale capacity Centralized management; one administrator to manage day-to-day operations No changes to application Higher reliability 1.2 PB of audio served per week 13 million files Over 50 GB/sec peak traffic

BRIGHTCOVE - Private Cloud: Media Serving Challenge Explosive customer & title growth Massive video in multiple locations Costs rising, esp. with HD formats Solution Complete scale-out based on commodity DAS/JBOD and GlusterFS Replication for high availability 1PB total capacity Benefits Easily scale capacity Centralized management; one administrator to manage day-to-day operations Higher reliability Path to multi-site Over 1 PB currently in Gluster Separate 4 PB project in the works

Администрирование # lvcreate -L32G -n lvBrick4 vg1x1 # mkfs -t xfs -i size=512 /dev/vg1x1/lvBrick4 # mkdir /bricks/4 # echo '/dev/vg1x1/lvBrick4/bricks/4xfs defaults 1 2' >> /etc/fstab # mount /bricks/4 Установка Glusterfs: Сервер на Ubuntu Создаем «кирпичи»: # add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.3 # apt-get update # apt-get install glusterfs-server # service glusterfs-server start # tail /var/log/gluster.log # wget epel.repo # yum --enablerepo=glusterfs-epel install glusterfs glusterfs-fuse # # tail /var/log/gluster.log Клиент на CentOS 5.5:

Администрирование gluster> volume create gv3 replica 3 transport tcp x1:/bricks/4 x2:/bricks/4 x3:/bricks/4 Creation of volume gv3 has been successful. Please start the volume to access data. gluster> volume start gv3 Starting volume gv3 has been successful gluster> volume info gv3 Volume Name: gv3 Type: Replicate Volume ID: 86f12bed-3a9e-493b-ba32-b9b2d6287d76 Status: Started Number of Bricks: 1 x 3 = 3 Transport-type: tcp Bricks: Brick1: x1:/bricks/4 Brick2: x2:/bricks/4 Brick3: x3:/bricks/4 gluster> peer probe x2 gluster> peer probe x3 gluster> peer status Number of Peers: 2 Hostname: x2 Uuid: bb9c73df-62c7-47d8-b81f-8d7a0c2085ab State: Peer in Cluster (Connected) Hostname: x3 Uuid: 2091f5a5-2c09-44c8-b53e-0b38abf8fd16 State: Peer in Cluster (Connected) Добавляем узлы к доверенному пулу: и создаем реплицируемый том:

Администрирование # df -m /dev/mapper/vg1x1-lvBrick % /bricks/4 /dev/mapper/vg1x1-lvBrick % /bricks/6 x3:/gv % /gv3 gluster> volume add-brick gv3 replica 3 x1:/bricks/6 x2:/bricks/6 x3:/bricks/6 Add Brick successful gluster> volume rebalance gv3 start Starting rebalance on volume gv3 has been successful gluster> volume rebalance gv3 status Node Rebalanced-files size scanned failures status MB completed # echo 'x3:/gv3 /gv3 glusterfs defaults,backupvolfile-server=x2,log- file=/var/log/gluster2.log 0 0' >> /etc/fstab # mount /gv3 # df -m /gv3 Filesystem 1M-blocks Used Available Use% Mounted on x3:/gv % /gv3 # cp -a /data4/bsp/2010_* /gv3/bsp # df -m /dev/mapper/vg1x1-lvBrick % /bricks/4 x3:/gv % /gv3 Монтируем: Расширяем и преобразуем в распределенно- реплицируемый:

Администрирование gluster> volume info gv3 Volume Name: gv3 Type: Distributed-Replicate Volume ID: 86f12bed-3a9e-493b-ba32-b9b2d6287d76 Status: Started Number of Bricks: 2 x 3 = 6 Transport-type: tcp Bricks: Brick1: x1:/bricks/4 Brick2: x2:/bricks/4 Brick3: x3:/bricks/4 Brick4: x1:/bricks/6 Brick5: x2:/bricks/6 Brick6: x3:/bricks/6 # df -m /dev/mapper/vg1x1-lvBrick % /bricks/4 /dev/mapper/vg1x1-lvBrick % /bricks/6 x3:/gv % /gv3 … # df -m /dev/mapper/vg1x1-lvBrick % /bricks/4 /dev/mapper/vg1x1-lvBrick % /bricks/6 x3:/gv % /gv3 Контроль доступа gluster> volume set gv1 nfs.rpc-auth-allow * Gluster> volume set gv1 auth.allow *

# gluster volume info gv1 Volume Name: gv1 Type: Distributed-Replicate Volume ID: 5a54adc2-cfeb-4f41-9d4b-1141eff2e1ea Status: Started Number of Bricks: 3 x 3 = 9 Transport-type: tcp Bricks: Brick1: x1:/bricks/c Brick2: x2:/bricks/c Brick3: x3:/bricks/c Brick4: x1:/bricks/b Brick5: x2:/bricks/b Brick6: x3:/bricks/b Brick7: x1:/bricks/a Brick8: x2:/bricks/a Brick9: x3:/bricks/a Options Reconfigured: nfs.enable-ino32: on auth.allow: xxx.xxx.xxx.*,xxx.xxx.xxx.xxx nfs.rpc-auth-allow: xxx.xxx.xxx.*,xxx.xxx.xxx.xxx # df -m /gv1 Filesystem 1M-blocks Used Available Use% Mounted on x3:/gv % /gv1 Архив файлов научных космических данных ИКИ РАН на основе GlusterFS

/bricks/a /bricks/b /bricks/c x1.c1.cosmos.ru /bricks/a /bricks/b /bricks/c x2.c1.cosmos.ru /bricks/a /bricks/b /bricks/c x3.c1.cosmos.ru Репликация Распределение Распределенно-реплицируемый том GlusterFS gv1 ЛВС ИКИ РАН ftp, scp, http ИНТЕРНЕТ rsync Gluster, NFS, CIFS/SMB

i386]# ls -l CentOS-6.2-i386-bin-DVD1.iso -rw-r--r-- 1 root root Dec CentOS-6.2-i386-bin-DVD1.iso i386]# time /bin/cp CentOS-6.2-i386-bin-DVD1.iso /data4/tmp/ real 1m28.247s user 0m0.384s sys 0m4.644s x1.c1.cosmos.ru:/gv % /gv1 i386]# time /bin/cp CentOS-6.2-i386-bin-DVD1.iso /gv1/tmp/ real 1m21.448s user 0m0.308s sys 0m3.928s ~]# echo 81.44|awk '{print /$1/1E6}' PDS]# du -ms starbase/ 949 starbase/ PDS]# find starbase/ -type f|wc PDS]# time /bin/cp -a starbase/ /data4/tmp/ real 23m7.649s user 0m0.160s sys 0m1.324s PDS]# time /bin/cp -a starbase/ /gv1/tmp real 31m17.075s user 0m0.164s sys 0m1.744s Производительность

x2.c1.cosmos.ru:/gv % /gv2.nfs i386]# time dd if=/dev/zero of=/gv2.nfs/tmp/24GB bs=1M count= records in records out bytes (25 GB) copied, seconds, 94.9 MB/s real 4m25.300s user 0m0.044s sys 0m51.403s i386]# time dd of=/dev/zero if=/gv2.nfs/tmp/24GB bs=1M records in records out bytes (25 GB) copied, seconds, 105 MB/s real 3m58.943s user 0m0.084s sys 0m15.677s Производительность

~]# mount -t glusterfs x1.c1.cosmos.ru:/gv3 -o log-file=/var/log/gluster.log /gv3.fuse/ ~]# time cp /gv3.fuse/tmp/CentOS-6.2-i386-bin-DVD1.iso /raid1a/tmp/ real 0m42.206s user 0m0.836s sys 0m12.057s ~]# time dd if=/gv3.fuse/tmp/CentOS-6.2-i386-bin-DVD1.iso of=/dev/null bs=1M records in records out bytes (3.8 GB) copied, seconds, 103 MB/s real 0m37.221s user 0m0.000s sys 0m0.252s i386]# time dd if=/dev/zero of=/gv3.fuse/tmp/24GB bs=1M count= records in records out bytes (25 GB) copied, seconds, 32.5 MB/s i386]# dd if=/dev/zero of=/gv2.fuse/tmp/24GB bs=1M count= records in records out bytes (25 GB) copied, seconds, 48.0 MB/s Производительность

plasma-f]# time rsync -avz --delete --password-file=/etc/rsync.s attitude orbit bemm bmsw doc mep building file list... done... bmsw/orbit/descrip/sumplot.htm bmsw/orbit/descrip/symbtab.gif bmsw/orbit/descrip/symbtabn.gif sent bytes received bytes bytes/sec total size is speedup is 7.25 real 590m50.814s user 462m32.286s sys 8m53.365s plasma-f]# time rsync -avz --delete --password-file=/etc/rsync.s attitude orbit bemm bmsw doc mep building file list... done... sent bytes received bytes bytes/sec total size is speedup is real 6m3.105s user 3m40.974s sys 0m4.220s Практика: заполнение

~]# mount -t glusterfs x1.c1.cosmos.ru:/gv3 -o log- file=/var/log/gluster.log /gv3.fuse/ ~]# time dd if=/gv3.fuse/tmp/CentOS-6.2-i386-bin-DVD1.iso of=/dev/null bs=1M records in records out bytes (3.8 GB) copied, seconds, 103 MB/s real 0m37.221s user 0m0.000s sys 0m0.252s ~]# dd if=/dev/zero of=/gv3.fuse/tmp/4GB bs=1M count= records in records out bytes (4.3 GB) copied, seconds, 32.4 MB/s ~]# time cp /gv3.fuse/tmp/CentOS-6.2-i386-bin-DVD1.iso /raid1a/tmp/ real 0m42.206s user 0m0.836s sys 0m12.057s ~]# echo 42.2|awk '{print /$1/1E6}' Производительность

Архив файлов научных космических данных ИКИ РАН на основе GlusterFS Название проектаОбъем данных, МБайтКоличество файлов Аркад Интеркосмос- Болгария Прогноз Вега 1, Интербол Плазма-Ф Итого на # df -m /gv1 Filesystem 1M-blocks Used Available Use% Mounted on x3:/gv % /gv1 # find /gv1 -type f | wc –l

Результаты и планы Опыт работы с GlusterFS показал в целом ее соответствие поставленной задаче Необходимо дальнейшее тестирование и мониторинг состояния данных GlusterFS Unified File and Object (UFO) – OpenStack/Swift API-совместимый сервер GlusterFS Планируется расширение Архива добавлением 3- узлового кластера Георепликация на удаленный узел Спасибо за внимание!