Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
|
proxmox:uff [2017/10/28 09:42] stefano [cluster] |
proxmox:uff [2023/04/17 14:25] (versione attuale) |
||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| + | ===== di base ===== | ||
| + | per la mia situazione di ufficio:\\ | ||
| + | -modificare repo\\ | ||
| + | -modificare hosts\\ | ||
| + | -modificare interfaces\\ | ||
| + | poi\\ | ||
| + | apt-get upgrade | ||
| + | apt-get dist-upgrade | ||
| + | apt-get install slim xfce4 | ||
| + | apt-get install xfce4-terminal | ||
| + | apt-get install iceweasel | ||
| + | apt-get install drbd8-utils | ||
| + | apt-get install ethtool | ||
| + | | ||
| + | ethtool server per attivare poi il wol\\ | ||
| + | |||
| + | per un editor leggero usare geany\\ | ||
| + | apt-get install geany | ||
| + | |||
| + | oppure il default text editor per xfce4 è mousepad: | ||
| + | apt-get install mousepad | ||
| + | | ||
| + | aggiungere i dischi in modo coerente per dimensione e seguito device\\ | ||
| + | |||
| + | inizializzare il cluster dal primo nodo\\ | ||
| + | pvecm create pvequre | ||
| + | |||
| + | aggiungere il secondo nodo eseguendo dal secondo nodo:\\ | ||
| + | pvecm add ip.primo.nodo.xx | ||
| + | |||
| + | ===== rete ===== | ||
| + | per poter sfogliare la rete bisogna installare il seguente pacchetto: | ||
| + | apt-get install gvfs-backends | ||
| + | | ||
| ===== Struttura ===== | ===== Struttura ===== | ||
| Macchine a disposizione: | Macchine a disposizione: | ||
| Linea 260: | Linea 294: | ||
| Ora accedento tramite interfaccia web ad entrambi i nodi vedremo la consolle di gestione centralizzata dei due nodi.\\ | Ora accedento tramite interfaccia web ad entrambi i nodi vedremo la consolle di gestione centralizzata dei due nodi.\\ | ||
| + | |||
| + | ==== pacemaker ==== | ||
| + | A questo punto viene aggiunto pacemaker e pcs che serviranno per gestire l' | ||
| + | apt-get install pacemaker pcs | ||
| + | |||
| + | sarà necessario installare anche il software che gestisce l' | ||
| + | apt-get install targetcli-fb | ||
| + | |||
| + | ora è possibile accedere all' | ||
| + | http:// | ||
| + | |||
| + | l' | ||
| + | passwd hacluster | ||
| + | |||
| + | e scegliere la nuova password per l' | ||
| ===== drbd ===== | ===== drbd ===== | ||
| Prima di installare il tool per la gestione dello storage ridondante | Prima di installare il tool per la gestione dello storage ridondante | ||
| Linea 268: | Linea 317: | ||
| aggiungere ad / | aggiungere ad / | ||
| deb http:// | deb http:// | ||
| + | |||
| + | Poi:\\ | ||
| + | apt-get update | ||
| infine:\\ | infine:\\ | ||
| apt-get install drbd8-tools | apt-get install drbd8-tools | ||
| - | partizionare | + | ora dobbiamo risistemare |
| - | primo nodo\\ | + | Server1\\ |
| Disk /dev/sda: 1.1 TiB, 1197759004672 bytes, 2339373056 sectors | Disk /dev/sda: 1.1 TiB, 1197759004672 bytes, 2339373056 sectors | ||
| Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
| Linea 301: | Linea 353: | ||
| - | secondo nodo\\ | + | server2\\ |
| Disk / | Disk / | ||
| Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
| Linea 343: | Linea 395: | ||
| apt-get install drbd8-utils | apt-get install drbd8-utils | ||
| + | Di seguito i file fondamentali per drbd ossia il file / | ||
| + | <file txt global_common.conf> | ||
| + | # DRBD is the result of over a decade of development by LINBIT. | ||
| + | # In case you need professional services for DRBD or have | ||
| + | # feature requests visit http:// | ||
| + | global { | ||
| + | usage-count yes; | ||
| + | # minor-count dialog-refresh disable-ip-verification | ||
| + | # cmd-timeout-short 5; cmd-timeout-medium 121; cmd-timeout-long 600; | ||
| + | } | ||
| + | common { | ||
| + | handlers { | ||
| + | # These are EXAMPLE handlers only. | ||
| + | # They may have severe implications, | ||
| + | # like hard resetting the node under certain circumstances. | ||
| + | # Be careful when chosing your poison. | ||
| + | |||
| + | # pri-on-incon-degr "/ | ||
| + | # pri-lost-after-sb "/ | ||
| + | # local-io-error "/ | ||
| + | # fence-peer "/ | ||
| + | # split-brain "/ | ||
| + | # out-of-sync "/ | ||
| + | # before-resync-target "/ | ||
| + | # after-resync-target / | ||
| + | } | ||
| + | |||
| + | startup { | ||
| + | wfc-timeout 60; | ||
| + | degr-wfc-timeout 50; | ||
| + | outdated-wfc-timeout 50; | ||
| + | # | ||
| + | } | ||
| + | |||
| + | options { | ||
| + | # cpu-mask on-no-data-accessible | ||
| + | } | ||
| + | |||
| + | disk { | ||
| + | # size on-io-error fencing disk-barrier disk-flushes | ||
| + | # disk-drain md-flushes | ||
| + | resync-rate 50M; | ||
| + | # | ||
| + | # c-plan-ahead c-delay-target c-fill-target c-max-rate | ||
| + | # c-min-rate disk-timeout | ||
| + | on-io-error detach; | ||
| + | disk-barrier no; | ||
| + | disk-flushes no; | ||
| + | } | ||
| + | net { | ||
| + | protocol C; | ||
| + | #timeout max-epoch-size max-buffers | ||
| + | # connect-int ping-int sndbuf-size rcvbuf-size ko-count | ||
| + | allow-two-primaries; | ||
| + | # | ||
| + | after-sb-0pri discard-zero-changes; | ||
| + | after-sb-1pri discard-secondary; | ||
| + | after-sb-2pri disconnect; | ||
| + | # | ||
| + | # ping-timeout data-integrity-alg tcp-cork on-congestion | ||
| + | # congestion-fill congestion-extents csums-alg verify-alg | ||
| + | # use-rle | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | file risorsa:\\ | ||
| + | <file txt r0.res> | ||
| + | resource r0 { | ||
| + | #startup { | ||
| + | # become-primary-on both; | ||
| + | #} | ||
| + | on pvequ1 { | ||
| + | device /dev/drbd0; | ||
| + | disk /dev/sdb1; | ||
| + | address 192.168.2.1: | ||
| + | meta-disk internal; | ||
| + | } | ||
| + | on pvequ2 { | ||
| + | device /dev/drbd0; | ||
| + | disk / | ||
| + | address 192.168.2.2: | ||
| + | meta-disk internal; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <file txt r1.res> | ||
| + | resource r1 { | ||
| + | #startup { | ||
| + | # become-primary-on both; | ||
| + | #} | ||
| + | on pvequ1 { | ||
| + | device /dev/drbd1; | ||
| + | disk /dev/sda4; | ||
| + | address 192.168.2.1: | ||
| + | meta-disk internal; | ||
| + | } | ||
| + | on pvequ2 { | ||
| + | device /dev/drbd1; | ||
| + | disk / | ||
| + | address 192.168.2.2: | ||
| + | meta-disk internal; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | al momento della creazione dei metadati, al primo avvio del servizio e alla prima sincronizzazione è bene commentare la voce ne file .res in cui dispone l' | ||
| + | |||
| + | ora che abbiamo predisposto le risorse creiamo il file dei metadati per ciascun dispositivo: | ||
| + | drbdadm create-md r0 | ||
| + | |||
| + | drbdadm create-md r1 | ||
| + | |||
| + | rispondiamo yes e confermiamo nel caso venga proposto o controlliamo i dati nel caso venga resitutito un errore.\\ | ||
| + | |||
| + | avviamo il servizio su entrambi i nodi:\\ | ||
| + | systemctl start drbd.service | ||
| + | |||
| + | per controllare la situazione usiamo:\\ | ||
| + | cat /proc/drbd | ||
| + | |||
| + | per effettuare la prima sincronizzazione: | ||
| + | drbdadm -- --overwrite-data-of-peer primary r0 | ||
| + | |||
| + | drbdadm -- --overwrite-data-of-peer primary r1 | ||
| + | |||
| + | al termine avremo una situazione tipo la seguente:\\ | ||
| + | version: 8.4.7 (api: | ||
| + | srcversion: 4702B0F5608C26F576DF75A | ||
| + | 0: cs: | ||
| + | ns:0 nr: | ||
| + | 1: cs: | ||
| + | ns:0 nr: | ||
| + | |||
| + | ora possiamo abilitare all' | ||
| + | systemctl enable drbd.service | ||
| + | |||
| + | e togliere il commento alla sezione dei file .res nella quale si abilita la condizione di primary all' | ||
| + | |||
| + | Al termine della sincronizzazione possiamo aggiungere i dispositivi drbd come PV (individuare quello giusto)\\ | ||
| + | pvcreate /dev/drbd2 | ||
| + | |||
| + | e come VG:\\ | ||
| + | vgcreate nomevg /dev/drbd2 | ||
| + | |||
| + | ===== PCS ===== | ||
| + | ora dobbiamo esportare attraverso iscsi i device a blocchi (dischi) che saranno utilizzati da windows per esportare i dati e fare il cluster winzoz\\ | ||
| + | pcs resource create r_tgt0 iSCSITarget iqn=iqn.2017-11.lnqu.proto.target0 tid=1 implementation=lio-t | ||
| + | pcs resource create r_lun0 iSCSILogicalUnit target_iqn=iqn.2017-11.lnqu.proto.target0 lun=1 path=/ | ||
| + | | ||
| + | | ||
| + | ===== CEPH ===== | ||
| + | per attivare un disco CCISS smart array come OSD bisogna modificare il file ''/ | ||
| + | e aggiungere alla riga 273 dopo '' | ||
| + | $devname =~ s|cciss/ | ||
| + | ===== rifare cluster ===== | ||
| + | Se ci fosse da rifare il cluster seguire le seguenti istruzioni: | ||
| + | #/bin/sh | ||
| + | fermare i vari servizi\\ | ||
| + | systemctl stop pvestatd.service | ||
| + | systemctl stop pvedaemon.service | ||
| + | systemctl stop pve-cluster.service | ||
| + | systemctl stop corosync | ||
| + | systemctl stop pve-cluster | ||
| + | |||
| + | Rimuovere dal database del cluster le impostazioni manualmente\\ | ||
| + | $ sqlite3 / | ||
| + | sqlite> select * from tree where name = ' | ||
| + | 254327|0|254329|0|1480944811|8|corosync.conf|totem { | ||
| + | version: 2 | ||
| + | [...] | ||
| + | sqlite> delete from tree where name = ' | ||
| + | sqlite> select * from tree where name = ' | ||
| + | sqlite> .quit | ||
| + | |||
| + | Rimuovere le directory\\ | ||
| + | pmxcfs -l | ||
| + | rm / | ||
| + | rm / | ||
| + | rm / | ||
| + | rm -rf / | ||
| + | ==== Ridurre quorum ==== | ||
| + | per diminuire il numero di voti del quorum per togliere nodi:\\ | ||
| + | pvecm expected 2 | ||
| + | ad esempio se si vuole ridurre a due i voti del quorum\\ | ||