К основному контенту

Как установить и настроить GlusterFS на Ubuntu 1604 / Debian

GlusterFS — это масштабированная сетевая файловая система хранения данных.

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

GlusterFS был первоначально разработан компанией Gluster, Inc., а затем Red Hat, Inc., в результате Red Hat, приобрел Gluster в 2011 году.

Здесь мы собираемся настроить том GlusterFS с двумя репликами.

Убедитесь, что у вас две 64-битные системы (виртуальные или физические) с 1 ГБ памяти и один запасной жесткий диск в каждой системе.

  • gluster1.hackthesec.local|192.168.12.16|Ubuntu 16.04|1GG|/dev/sdb (5GB)—Node 1
  • gluster2.hackthesec.local|192.168.12.17|Debian 8|1GB|/dev/sdb (5GB)—Node 2
  • client.hackthesec.local|192.168.12.8|CentOS 7/Debian|N/A|N/A|Клиентская машина

Настройка DNS:

Компоненты GlusterFS используют DNS для разрешения имен, поэтому настройте DNS или настройте записи в /etc/hosts.

Если у вас нет DNS в вашей среде, измените файл /etc/hosts и обновите его соответствующим образом.

sudo vi /etc/hosts192.168.12.16gluster1.hackthesec.localgluster1192.168.12.17gluster2.hackthesec.localgluster2192.168.12.20 client.hackthesec.local client

Добавьте репозиторий GlusterFS:

Прежде чем приступить к установке, нам нужно настроить репозиторий GlusterFS на обоих узлах хранения.

Следуйте инструкциям, чтобы добавить репозиторий в вашу систему

Debian:

Установите пакет поддержки для транзакций https.

sudo apt-get install -y lsb-releasesudo apt-get install -y apt-transport-https

Добавить открытый ключ для репозитория GlusterFS.

wget -O - http://download.gluster.org/pub/gluster/glusterfs/LATEST/rsa.pub | sudo apt-key add -echo deb https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/$(lsb_release -sc)/apt $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/gluster.list

Ubuntu 16.04/14.04:

sudo apt-get install -y software-properties-commonsudo add-apt-repository ppa:gluster/glusterfs-3.8

Установка GlusterFS:

После того, как вы добавили репозиторий в свои системы, мы готовы приступить к установке GlusterFS.

Обновите кеш репозитория.

sudo apt-get update

Установите пакет GlusterFS, используя следующую команду:

sudo apt-get install -y glusterfs-server

Запустите службу glusterfs-сервера на всех узлах.

sudo service glusterfs-server start

Убедитесь, что служба glusterfs работает нормально.

$ sudo service glusterfs-server status● glusterfs-server.service - LSB: GlusterFS serverLoaded: loaded (/etc/init.d/glusterfs-server; bad; vendor preset: enabled)Active: active (running) since Sat 2016-09-24 21:47:20 IST; 1min 6s agoDocs: man:systemd-sysv-generator(8)Process: 1570 ExecStop=/etc/init.d/glusterfs-server stop (code=exited, status=0/SUCCESS)Process: 1664 ExecStart=/etc/init.d/glusterfs-server start (code=exited, status=0/SUCCESS)Tasks: 7 (limit: 512)Memory: 25.5MCPU: 3.552sCGroup: /system.slice/glusterfs-server.service└─1673 /usr/sbin/glusterd -p /var/run/glusterd.pidSep 24 21:47:16 gluster1.hackthesec.local systemd[1]: Starting LSB: GlusterFS server...Sep 24 21:47:16 gluster1.hackthesec.local glusterfs-server[1664]:* Starting glusterd service glusterdSep 24 21:47:20 gluster1.hackthesec.local glusterfs-server[1664]:...done.Sep 24 21:47:20 gluster1.hackthesec.local systemd[1]: Started LSB: GlusterFS server.

Настройка фаерволла

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

sudo iptables -I INPUT -p all -s-j ACCEPT

Добавить хранилище:

Предполагая, что у вас есть один запасной жесткий диск на вашем компьютере, /dev/sdb — тот, который я буду использовать

Создайте отдельный раздел на резервном жестком диске, как показано ниже:

sudo fdisk /dev/sdb
Отформатируйте и смонтируйте созданный раздел с выбранной вами файловой системой.
sudo mkfs.ext4 /dev/sdb1sudo mkdir -p /data/glustersudo mount /dev/sdb1 /data/glusterecho "/dev/sdb1 /data/gluster ext4 defaults 0 0" | sudo tee --append /etc/fstab

Настройте GlusterFS на Ubuntu 16.04:

Перед созданием тома нам нужно создать доверенный пул хранения, добавив gluster2.hackthesec.local.

Вы можете запускать команды конфигурации GlusterFS на любом одном сервере в кластере, выполнив ту же самую команду на всех других серверах.

Здесь я буду запускать все команды GlusterFS в gluster1.hackthesec.local

hackthesec@gluster1:~$ sudo gluster peer probe gluster2.hackthesec.localpeer probe: success.hackthesec@gluster1:~$ sudo gluster peer statusNumber of Peers: 1Hostname: gluster2.hackthesec.localUuid: 51470928-dfa8-42e1-a221-d7bbcb8c13bdState: Peer in Cluster (Connected)hackthesec@gluster1:~$ sudo gluster pool listUUIDHostnameState51470928-dfa8-42e1-a221-d7bbcb8c13bdgluster2.hackthesec.localConnecteddc7c1639-d21c-4adf-b28f-5150229e6980localhost Connected

Настройка GlusterFS раздела:

Создайте каталог под названием «gvol0» в смонтированной файловой системе на обоих узлах.

sudo mkdir -p /data/gluster/gvol0

Поскольку мы собираемся использовать реплицированный том, создайте том с именем «gvol0» с двумя репликами.

hackthesec@gluster1:~$ sudo gluster volume create gvol0 replica 2 gluster1.hackthesec.local:/data/gluster/gvol0 gluster2.hackthesec.local:/data/gluster/gvol0volume create: gvol0: success: please start the volume to access data

Запустите том:

hackthesec@gluster1:~$ sudo gluster volume start gvol0volume start: gvol0: success

Проверьте состояние созданного тома.

hackthesec@gluster1:~$ sudo gluster volume info gvol0Volume Name: gvol0Type: ReplicateVolume ID: ca102e4b-6cd1-4d9d-9c5a-03b882c76da0Status: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: gluster1.hackthesec.local:/data/gluster/gvol0Brick2: gluster2.hackthesec.local:/data/gluster/gvol0Options Reconfigured:transport.address-family: inetperformance.readdir-ahead: onnfs.disable: on

Настройка клиента GlusterFS:

Установите пакет glusterfs-client для поддержки установки файловых систем GlusterFS.

Запустите все команды как пользователь root.

$ su -### CentOS/RHEL ###yum install -y glusterfs-client### Ubuntu/Debian ###apt-get install -y glusterfs-client

Создайте каталог для монтирования файловой системы GlusterFS.

mkdir -p /mnt/glusterfs

Теперь подключите файловую систему GlusterFS к /mnt/glusterfs, используя следующую команду.

mount -t glusterfs gluster1.hackthesec.local:/gvol0 /mnt/glusterfs

Вы также можете использовать gluster2.hackthesec.local вместо gluster1.hackthesec.com в приведенной выше команде.

Проверьте смонтированную файловую систему GlusterFS.

[root@client ~]# df -hP /mnt/glusterfsFilesystem SizeUsed Avail Use% Mounted ongluster1.hackthesec.local:/gvol04.8G 11M4.6G 1% /mnt/glusterfs

Вы также можете использовать команду ниже для проверки файловой системы GlusterFS.

[root@client ~]# cat /proc/mountsrootfs/rootfs rw 0 0sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=490448k,nr_inodes=122612,mode=755 0 0securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0configfs /sys/kernel/config configfs rw,relatime 0 0/dev/mapper/centos-root/xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0debugfs /sys/kernel/debug debugfs rw,relatime 0 0mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0/dev/mapper/centos-home /home xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0/dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=100136k,mode=700 0 0gluster1.hackthesec.local:/gvol0 /mnt/glusterfs fuse.glusterfs rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072 0 0fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0

Добавьте запись в /etc/fstab для автоматического монтирования во время загрузки системы.

gluster1.hackthesec.local:/gvol0 /mnt/glusterfs glusterfsdefaults,_netdev 0 0

Тестирование репликации GlusterFS и высокой доступности:

Сторона сервера GlusterFS:

Чтобы проверить репликацию, смонтируйте созданный том GlusterFS на том же узле хранения.

hackthesec@gluster1:~$ sudo mount -t glusterfs gluster1.hackthesec.local:/gvol0 /mnthackthesec@gluster2:~$ sudo mount -t glusterfs gluster2.hackthesec.local:/gvol0 /mnt

Данные внутри каталога/mnt обоих узлов всегда будут одинаковыми (репликация).

Сторона клиента GlusterFS:

Давайте создадим несколько файлов на смонтированной файловой системе на client.hackthesec.local.

touch /mnt/glusterfs/file1touch /mnt/glusterfs/file2[root@client ~]# ll /mnt/glusterfs/total 0-rw-r--r--. 1 root root 0 Sep 26 11:22 file1-rw-r--r--. 1 root root 0 Sep 26 11:22 file2

Проверьте оба узла GlusterFS, имеют ли они одни и те же данные внутри/mnt.

hackthesec@gluster1:~$ ll /mnt/total 12drwxr-xr-x4 root root 4096 Sep 26 20:52 ./drwxr-xr-x 24 root root 4096 Sep 25 21:57 ../-rw-r--r--1 root root0 Sep 26 20:52 file1-rw-r--r--1 root root0 Sep 26 20:52 file2hackthesec@gluster2:~$ ls -al /mnt/total 12drwxr-xr-x4 root root 4096 Sep 26 06:30 .drwxr-xr-x 23 root root 4096 Sep 24 08:39 ..-rw-r--r--1 root root0 Sep 262016 file1-rw-r--r--1 root root0 Sep 262016 file2

Как вы знаете, мы установили том GlusterFS из gluster1.hackthesec.local на client.hackthesec.local, теперь настало время проверить высокую доступность тома, отключив узел.

hackthesec@gluster1:~$ sudo poweroff

Теперь проверьте наличие файлов, и вы увидите файлы, которые мы создали недавно, даже несмотря на то, что узел не работает.

[root@client ~]# ll /mnt/glusterfs/total 0-rw-r--r--. 1 root root 0 Sep 26 11:22 file1-rw-r--r--. 1 root root 0 Sep 26 11:22 file2

Создайте еще несколько файлов в файловой системе GlusterFS, чтобы проверить репликацию.

touch /mnt/glusterfs/file3touch /mnt/glusterfs/file4

Проверьте количество файлов.

[root@client ~]# ll /mnt/glusterfs/total 0-rw-r--r--. 1 root root 0 Sep 26 11:22 file1-rw-r--r--. 1 root root 0 Sep 26 11:22 file2-rw-r--r--. 1 root root 0 Sep 26 11:26 file3-rw-r--r--. 1 root root 0 Sep 26 11:26 file4

Поскольку gluster1 не работает, все ваши данные теперь прописаны на gluster2.hackthesec.local. Теперь включите узел1 (gluster1.hackthesec.local).

Проверьте/mnt gluster1.hackthesec.local; вы должны увидеть все четыре файла в каталоге, это подтверждает, что репликация работает должным образом.

hackthesec@gluster1:~$ sudo mount -t glusterfs gluster1.hackthesec.local:/gvol0 /mnt[sudo] password for hackthesec:hackthesec@gluster1:~$ ll /mnt/total 12drwxr-xr-x4 root root 4096 Sep 26 20:59 ./drwxr-xr-x 24 root root 4096 Sep 25 21:57 ../-rw-r--r--1 root root0 Sep 26 20:52 file1-rw-r--r--1 root root0 Sep 26 20:52 file2-rw-r--r--1 root root0 Sep 26 20:56 file3-rw-r--r--1 root root0 Sep 26 20:56 file4

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…