Strumenti Utente

Strumenti Sito


proxmox:uff

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
proxmox:uff [2017/10/28 09:40]
stefano
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 255: Linea 289:
 modificare il file /etc/pve/corosync.conf nel nodo principale aggiungendo la riga indicata nell'apposita sezione\\ modificare il file /etc/pve/corosync.conf nel nodo principale aggiungendo la riga indicata nell'apposita sezione\\
   quorum {   quorum {
-   provider: corosync_votequorum +    provider: corosync_votequorum 
--->   two_node: 1 +  -->   two_node: 1 
- }+   }
  
 +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'esportazione dello storage drbd in modo tale che venga utilizzato direttamente dalle macchine virtuali windows\\
 +  apt-get install pacemaker pcs
 +
 +sarà necessario installare anche il software che gestisce l'implementazione ISCSI-3\\
 +  apt-get install targetcli-fb
 +
 +ora è possibile accedere all'interfaccia web per la gestione del cluster con pcs:\\
 +http://ipnodocluster:2224 \\
 +
 +l'utente per accedere è hacluster ma è necessario reimpostare la password su entrambi i nodi per poter accedere:\\
 +  passwd hacluster
 +
 +e scegliere la nuova password per l'utente hacluster.\\
 ===== drbd ===== ===== drbd =====
 Prima di installare il tool per la gestione dello storage ridondante  dobbiamo intervenire sui file dei repositori in quanto noi utilizziamo la versione di proxmox completamente libera e non la parte comprensiva di sottoscrizione a pagamento.\\ Prima di installare il tool per la gestione dello storage ridondante  dobbiamo intervenire sui file dei repositori in quanto noi utilizziamo la versione di proxmox completamente libera e non la parte comprensiva di sottoscrizione a pagamento.\\
Linea 267: Linea 317:
 aggiungere ad /etc/apt/sources.list\\ aggiungere ad /etc/apt/sources.list\\
   deb http://download.proxmox.com/debian stretch pve-no-subscription   deb http://download.proxmox.com/debian stretch pve-no-subscription
 +
 +Poi:\\
 +  apt-get update
  
 infine:\\ infine:\\
   apt-get install drbd8-tools   apt-get install drbd8-tools
  
-partizionare i dischi secondo lo schema creando partizioni di tipo Linux LVM\\+ora dobbiamo risistemare i dischi di entrambi i nodi aggiungendo le opportune partizioni secondo lo schema seguente\\
  
-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 300: Linea 353:
  
  
-secondo nodo\\+server2\\
   Disk /dev/cciss/c0d0: 410.1 GiB, 440345714688 bytes, 860050224 sectors   Disk /dev/cciss/c0d0: 410.1 GiB, 440345714688 bytes, 860050224 sectors
   Units: sectors of 1 * 512 = 512 bytes   Units: sectors of 1 * 512 = 512 bytes
Linea 342: Linea 395:
   apt-get install drbd8-utils   apt-get install drbd8-utils
  
 +Di seguito i file fondamentali per drbd ossia il file /etc/drbd.d/global_common.comf che deve essere uguale su entrambi i nodi così come i file risorsa che per la situazione è stato scelto di crearne 2. Quindi due dispositivi DRBD.\\
  
 +<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://www.linbit.com
  
 +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 "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
 +                # pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
 +                # local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
 +                # fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
 +                # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
 +                # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
 +                # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
 +                # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
 +        }
 +
 +        startup {
 +                wfc-timeout 60;
 +                degr-wfc-timeout 50;
 +                outdated-wfc-timeout 50;
 +                #wait-after-sb
 +        }
 +
 +        options {
 +                # cpu-mask on-no-data-accessible
 +        }
 +
 +        disk {
 +                # size on-io-error fencing disk-barrier disk-flushes
 +                # disk-drain md-flushes
 +                resync-rate 50M;
 +                #resync-after al-extents
 +                # 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;
 +                #cram-hmac-alg shared-secret
 +                after-sb-0pri discard-zero-changes;
 +                after-sb-1pri discard-secondary;
 +                after-sb-2pri disconnect;
 +                #always-asbp rr-conflict
 +                # ping-timeout data-integrity-alg tcp-cork on-congestion
 +                # congestion-fill congestion-extents csums-alg verify-alg
 +                # use-rle
 +        }
 +}
 +</file>
 +
 +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:7788;
 +                meta-disk internal;
 +        }
 +        on pvequ2 {
 +                device /dev/drbd0;
 +                disk /dev/cciss/c0d1p1;
 +                address 192.168.2.2:7788;
 +                meta-disk internal;
 +        }
 +}
 +</file>
 +
 +<file txt r1.res>
 +resource r1 {
 +        #startup {
 +        #        become-primary-on both;
 +        #}
 +        on pvequ1 {
 +                device /dev/drbd1;
 +                disk /dev/sda4;
 +                address 192.168.2.1:7789;
 +                meta-disk internal;
 +        }
 +        on pvequ2 {
 +                device /dev/drbd1;
 +                disk /dev/cciss/c0d1p2;
 +                address 192.168.2.2:7789;
 +                meta-disk internal;
 +        }
 +}
 +</file>
 +
 +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'avvio come primaria della risorsa ( su entrambi i nodi e le risorse).
 +
 +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:1/proto:86-101)
 +  srcversion: 4702B0F5608C26F576DF75A 
 +   0: cs:SyncTarget ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
 +      ns:0 nr:1898108168 dw:1897990952 dr:819848 al:8 bm:0 lo:0 pe:7 ua:0 ap:0 ep:1 wo:d oos:0
 +   1: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
 +      ns:0 nr:684756816 dw:684693872 dr:817472 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d oos:0
 +
 +ora possiamo abilitare all'avvio il servizio:\\
 +  systemctl enable drbd.service
 +
 +e togliere il commento alla sezione dei file .res nella quale si abilita la condizione di primary all'avvio.\\
 +
 +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=/dev/drbd0 implementation=lio-t
 +  
 +  
 +===== CEPH =====
 +per attivare un disco CCISS smart array come OSD bisogna modificare il file ''/usr/share/perl5/PVE/API2/Ceph.pm'' \\
 +e aggiungere alla riga 273 dopo ''$devname =~ s|/dev/||;'' \\
 +  $devname =~ s|cciss/|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 /var/lib/pve-cluster/config.db
 +  sqlite> select * from tree where name = 'corosync.conf';
 +  254327|0|254329|0|1480944811|8|corosync.conf|totem {
 +  version: 2
 +  [...]
 +  sqlite> delete from tree where name = 'corosync.conf';
 +  sqlite> select * from tree where name = 'corosync.conf';
 +  sqlite> .quit
  
 + 
 +Rimuovere le directory\\
 +  pmxcfs -l
 +  rm /etc/pve/corosync.conf
 +  rm /etc/corosync/*
 +  rm /var/lib/corosync/*
 +  rm -rf /etc/pve/nodes/*
  
 +==== 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\\
proxmox/uff.1509176459.txt.gz · Ultima modifica: 2023/04/17 14:25 (modifica esterna)