Установка и настройка отказоустойчивого кластера. — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
Строка 43: Строка 43:
  
 
14) смена host на osd\\
 
14) смена host на osd\\
        # ceph osd getcrushmap -o crushmapdump
+
# ceph osd getcrushmap -o crushmapdump
        # crushtool -d  crushmapdump -o  crushmapdump-decompiled
+
# crushtool -d  crushmapdump -o  crushmapdump-decompiled
        # nano  crushmapdump-decompiled
+
# nano  crushmapdump-decompiled
        #rules
+
#rules
        step chooseleaf firstn 0 type host → step chooseleaf firstn 0 type osd
+
step chooseleaf firstn 0 type host → step chooseleaf firstn 0 type osd
        # crushtool -c  crushmapdump-decompiled -o crushmapdump-compiled
+
# crushtool -c  crushmapdump-decompiled -o crushmapdump-compiled
        # ceph osd setcrushmap -i crushmapdump-compiled
+
# ceph osd setcrushmap -i crushmapdump-compiled
 
получить ответ  
 
получить ответ  
        set crush map --> all ok
+
set crush map --> all ok
15) \\
+
 
  
  
  
 
== Moxa ==
 
== Moxa ==
 +
1) choose kernel 3.x
 +
 +
2) edit mxloadsvr.c
 +
….................................
 +
else if (os == "debian") → “debain11”
 +
{
 +
system("grep -v mxloadsvr /etc/init.d/npreals > /tmp/nprtmp_rclocal");
 +
….................................
 +
3) ./mxinst
 +
 +
4) rm -f /etc/rc0-6.d/S02npreals
 +
 +
5) cp npreals /root/moxa
  
1) choose kernel 3.x \\
+
6) chmod +x /etc/moxa/npreals.sh
2) edit mxloadsvr.c \\
 
        ….................................
 
        else if (os == "debian") → “debain11”
 
                {
 
                    system("grep -v mxloadsvr /etc/init.d/npreals > /tmp/nprtmp_rclocal");
 
        ….................................
 
3) ./mxinst \\
 
4) rm -f /etc/rc0-6.d/S02npreals \\
 
5) cp npreals /root/moxa \\
 
6) chmod +x /etc/moxa/npreals.sh \\
 
7) cp npreals /etc/init.d/ \\
 
8) chmod +x /etc/init.d/npreals\\
 
9) update -rc.d npreals defaults\\
 
10)
 
  
 +
7) cp npreals /etc/init.d/
  
 +
8) chmod +x /etc/init.d/npreals
  
Добавление ноды\\
+
9) update -rc.d npreals defaults
было 2 стало 3 \\
 
  
1) все как обычно + правка конфига /etc/pve/storage.cfg\\
+
добавление ноды
добавить ip третьего mon'a\\
+
было 2 стало 3
  
2) ceph – pool – create с тем же именем, но с 3/2\\
+
1) все как обычно + правка конфига /etc/pve/storage.cfg
либо создать другой pool и развернуть dump кластера с двух нод\\
 
  
СМЕНА IP\\
+
добавить ip третьего mon'a
node → system → network → reboot\\
 
nano /etc/hosts поменять там ip → reboot через веб морду\\
 
  
===== Glusterfs =====
+
2) ceph – pool – create с тем же именем, но с 3/2
  
1) при установке дать имя ipenode1.integra-s.com\\
+
либо создать другой pool и развернуть dump кластера с двух нод
2) Первое, что нам нужно сделать, это поменять платный репозиторий ProxMox, требующий подписки, на бесплатный:
+
 
 +
СМЕНА IP
 +
 
 +
node → system → network → reboot
 +
 
 +
nano /etc/hosts поменять там ip → reboot через веб морду
 +
 
 +
== Glusterfs ==
  
        #nano /etc/apt/sources.list.d/pve-enterprise.list
+
1) при установке дать имя ipenode1.integra-s.com
  
 +
2) Первое, что нам нужно сделать, это поменять платный репозиторий ProxMox, требующий подписки, на бесплатный:
 +
#nano /etc/apt/sources.list.d/pve-enterprise.list
 
3) комментируем единственную строку и вписываем новую ниже:
 
3) комментируем единственную строку и вписываем новую ниже:
 +
deb http://download.proxmox.com/debian jessie pve-no-subscription
 +
4) Далее обновляем наш ProxMox:
 +
#apt update && apt dist-upgrade
 +
5) pvecm create glcluster — на основной ноде
  
        deb http://download.proxmox.com/debian jessie pve-no-subscription
+
pvecm add <node2> - добавить вторую ноду в кластер, прописывается на второй ноде
  
4) Далее обновляем наш ProxMox:
+
6) добавить в /etc/hosts ноды, которые будут участвовать в кластере glusterfs
 +
 
 +
7) apt install glusterfs-server
  
        #apt update && apt dist-upgrade
 
5) pvecm create glcluster — на основной ноде
 
pvecm add <node2> - добавить вторую ноду в кластер, прописывается на второй ноде \\
 
6) добавить в /etc/hosts ноды, которые будут участвовать в кластере glusterfs \\
 
7) apt install glusterfs-server \\
 
 
8) gluster peer probe <node2>
 
8) gluster peer probe <node2>
проверить статус командой \\
+
 
9) на каждой ноде  
+
проверить статус командой
9.1)
+
 
mkdir -p /media/glusterfs/wbackup
+
9) на каждой ноде
9.2*) можно создать папку mbackup и добавить в /media/glusterfs для volume под название mbackup
+
 
 +
:9.1) mkdir -p /media/glusterfs/wbackup
 +
:9.2) можно создать папку mbackup и добавить в /media/glusterfs для volume под название mbackup
 
на одной из нод проделать след. 2 пункта
 
на одной из нод проделать след. 2 пункта
 +
 
10) gluster volume create <wbackup> replica 2 <node1>:/media/glusterfs/wbackup <node2>:/media/glusterfs/wbackup
 
10) gluster volume create <wbackup> replica 2 <node1>:/media/glusterfs/wbackup <node2>:/media/glusterfs/wbackup
11) gluster volume start <wbackup>
 
на каждой проверить все ли верно сделано
 
зайти на первую ноду, создать файл в директории /mnt/pve/wbackup/images/ и проверить его наличие на другой ноде по тому же пути;
 
gluster volume info
 
  
 +
11) gluster volume start <wbackup>
 +
 +
на каждой проверить все ли верно сделано зайти на первую ноду, создать файл в директории /mnt/pve/wbackup/images/ и проверить его наличие на другой ноде по тому же пути;
 +
gluster volume info
 
11) для удаления volume:
 
11) для удаления volume:
gluster volume stop <wbackup>
+
 
gluster volume delete <wbackup>
+
gluster volume stop <wbackup>
apt-get install attr
+
gluster volume delete <wbackup>
cd /media/glusterfs/wbackup
+
apt-get install attr
for i in `attr -lq .`; do setfattr -x trusted.$i .; done
+
cd /media/glusterfs/wbackup
attr -lq ./(for testing, the output should pe empty)
+
for i in `attr -lq .`; do setfattr -x trusted.$i .; done
 +
attr -lq ./(for testing, the output should pe empty)

Версия 12:31, 24 апреля 2017

Содержание

Proxmox

1) при установке дать имя ipenode1.integra-s.com

2) Первое, что нам нужно сделать, это поменять платный репозиторий ProxMox, требующий подписки, на бесплатный:

#nano /etc/apt/sources.list.d/pve-enterprise.list

3) комментируем единственную строку и вписываем новую ниже:

deb http://download.proxmox.com/debian jessie pve-no-subscription

4) Далее обновляем наш ProxMox:

#apt update && apt dist-upgrade

4.1) прописываем в /etc/hosts на каждой ноде ip и hostname нод будущего кластера создаем кластер и прописывает на главной ноде

#pvecm create <clustername> 

проверяем, что все нормально и смотрим список нод

#pvecm status

на второстепенных нодах пишем

#pvecm add ipenode1

проверяем, что все нормально и смотрим список нод в кластере

#pvecm status

CEPH

5) Устанавливаем пакеты для работы с Ceph:

#pveceph install -version jewel

6) добавить внутреннюю сеть 10.10.10.0/24 → ребут через веб морду (2 раза)

public net=cluster net

7) подготовка диска для последующего создания OSD

#cfdisk /dev/sdb (new OSD)

8)на каждой ноде

#pveceph init --network 10.10.10.0/24 

9) создание первого монитора через веб морду или консоль

#pveceph createmon

10) переходим в веб морду и удаляем pool, далее создаем новый c pg_num=128 2/2 (2 nodes), 3/2 (3 nodes), чем больше OSD, тем больше pg_num

PG_total = (OSD_count*100)/max_replication_count
PGPs=PGs

11) создать OSDs (/dev/sdb, /dev/sdc) через вебморду

12) создать RBD хранилище в datacentr'е (monitor: 10.10.10.1)

13) для rbd на client node

# cd /etc/pve/priv/
# mkdir ceph
# cp /etc/ceph/ceph.client.admin.keyring ceph/my-ceph-storage.keyring

14) смена host на osd\\

# ceph osd getcrushmap -o crushmapdump
# crushtool -d  crushmapdump -o  crushmapdump-decompiled
# nano  crushmapdump-decompiled
#rules
step chooseleaf firstn 0 type host → step chooseleaf firstn 0 type osd
# crushtool -c  crushmapdump-decompiled -o crushmapdump-compiled
# ceph osd setcrushmap -i crushmapdump-compiled

получить ответ

set crush map --> all ok



Moxa

1) choose kernel 3.x

2) edit mxloadsvr.c

….................................
else if (os == "debian") → “debain11”
{
system("grep -v mxloadsvr /etc/init.d/npreals > /tmp/nprtmp_rclocal");
….................................

3) ./mxinst

4) rm -f /etc/rc0-6.d/S02npreals

5) cp npreals /root/moxa

6) chmod +x /etc/moxa/npreals.sh

7) cp npreals /etc/init.d/

8) chmod +x /etc/init.d/npreals

9) update -rc.d npreals defaults

добавление ноды было 2 стало 3

1) все как обычно + правка конфига /etc/pve/storage.cfg

добавить ip третьего mon'a

2) ceph – pool – create с тем же именем, но с 3/2

либо создать другой pool и развернуть dump кластера с двух нод

СМЕНА IP

node → system → network → reboot

nano /etc/hosts поменять там ip → reboot через веб морду

Glusterfs

1) при установке дать имя ipenode1.integra-s.com

2) Первое, что нам нужно сделать, это поменять платный репозиторий ProxMox, требующий подписки, на бесплатный:

#nano /etc/apt/sources.list.d/pve-enterprise.list

3) комментируем единственную строку и вписываем новую ниже:

deb http://download.proxmox.com/debian jessie pve-no-subscription

4) Далее обновляем наш ProxMox:

#apt update && apt dist-upgrade

5) pvecm create glcluster — на основной ноде

pvecm add <node2> - добавить вторую ноду в кластер, прописывается на второй ноде

6) добавить в /etc/hosts ноды, которые будут участвовать в кластере glusterfs

7) apt install glusterfs-server

8) gluster peer probe <node2>

проверить статус командой

9) на каждой ноде

9.1) mkdir -p /media/glusterfs/wbackup
9.2) можно создать папку mbackup и добавить в /media/glusterfs для volume под название mbackup

на одной из нод проделать след. 2 пункта

10) gluster volume create <wbackup> replica 2 <node1>:/media/glusterfs/wbackup <node2>:/media/glusterfs/wbackup

11) gluster volume start <wbackup>

на каждой проверить все ли верно сделано зайти на первую ноду, создать файл в директории /mnt/pve/wbackup/images/ и проверить его наличие на другой ноде по тому же пути;

gluster volume info

11) для удаления volume:

gluster volume stop <wbackup>
gluster volume delete <wbackup>
apt-get install attr
cd /media/glusterfs/wbackup
for i in `attr -lq .`; do setfattr -x trusted.$i .; done
attr -lq ./(for testing, the output should pe empty)