Table of Contents
Instalamos servidor en RAID:
http://matarosensefils.net/wiki/index.php?n=Proxmox.DebianJessieNetinstall
En resumen, en cada disco creo 3 particiones:
32 Gb / y RAID 4 Gb swap Lo que sobre para glusterfs
Y hacemos RAID en / con opción boot
Configuración de RED
Hacemos un bonding y encima un bridge con las dos tarjetas.
/etc/network/interfaces
auto lo iface lo inet loopback iface eth0 inet manual iface eth1 inet manual auto bond0 iface bond0 inet manual slaves eth0 eth1 bond-mode 802.3ad bond-miimon 100 auto vmbr0 iface vmbr0 inet static address 192.168.2.1 netmask 255.255.252.0 gateway 192.168.1.1 bridge_ports bond0 bridge_stp off bridge_fd 0
En el switch tenemos que activar port trunk. En mi caso es un tplink tl sg 1024de y entro a la configuración en 192.168.0.1
Configurado red containers
/etc/pve/lxc/101.conf
net0: name=eth0,bridge=vmbr0,gw=192.168.0.1,hwaddr=6A:7F:40:EE:21:43,ip=192.168.0.101/24,type=veth net1: name=eth1,bridge=vmbr1,gw=10.91.168.1,hwaddr=4A:72:61:FF:FF:59,ip=10.91.168.101/24,type=veth
Instalación Proxmox
Fuente: http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Jessie#Adapt_your_sources.list
Asegurarse que el valor que resuelva hostname lo tenga en el /etc/hosts. Por ejemplo:
127.0.0.1 localhost 192.168.1.100 proxmoxescorxador
Añadimos repositorios de proxmox:
echo "deb http://download.proxmox.com/debian jessie pvetest" > /etc/apt/sources.list.d/pve-install-repo.list
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
apt-get update && apt-get dist-upgrade
apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi
Vemos que cambia el kernel al reiniciar:
Linux proxmox02 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux Linux proxmox02 4.1.3-1-pve #1 SMP Thu Jul 30 08:54:37 CEST 2015 x86_64 GNU/Linux
Configuramos la red así:
auto vmbr0 iface vmbr0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eth0 bridge_stp off bridge_fd 0
Cluster Proxmox
Desde el primer nodo que será master
root@proxmox1:~# pvecm create clusterproxmox Corosync Cluster Engine Authentication key generator. Gathering 1024 bits for key from /dev/urandom. Writing corosync key to /etc/corosync/authkey.
root@proxmox1:~# pvecm status Quorum information ------------------ Date: Mon Sep 12 22:37:19 2016 Quorum provider: corosync_votequorum Nodes: 1 Node ID: 0x00000001 Ring ID: 1/4 Quorate: Yes Votequorum information ---------------------- Expected votes: 1 Highest expected: 1 Total votes: 1 Quorum: 1 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 192.168.2.1 (local)
Desde el segundo nodo lo añadimos poniendo la ip del primero
root@proxmox2:~# pvecm add 192.168.2.1 The authenticity of host '192.168.2.1 (192.168.2.1)' can't be established. ECDSA key fingerprint is 3a:17:aa:ca:c4:1b:55:2a:12:bb:fe:b4:ed:af:1e:af. Are you sure you want to continue connecting (yes/no)? yes root@192.168.2.1's password: copy corosync auth key stopping pve-cluster service backup old database waiting for quorum...OK generating node certificates merge known_hosts file restart services successfully added node 'proxmox2' to cluster.
Ahora vemos que ya hay dos miembros:
root@proxmox1:~# pvecm status Quorum information ------------------ Date: Mon Sep 12 22:47:44 2016 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 0x00000001 Ring ID: 1/12 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 192.168.2.1 (local) 0x00000002 1 192.168.2.2
Borrar nodo cluster
Si al borrar un nodo da error, le decimos que espere (e=expected) solo un nodo:
root@proxmox01:/var/log# pvecm delnode proxmox02 cluster not ready - no quorum?
root@proxmox01:/var/log# pvecm e 1 root@proxmox01:/var/log# pvecm delnode proxmox02
Gluster:
Instalamos versión 3.7 que es la estable:
http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/Debian/jessie/
Instalamos:
wget -O - http://download.gluster.org/pub/gluster/glusterfs/LATEST/rsa.pub | apt-key add - echo deb http://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/jessie/apt jessie main > /etc/apt/sources.list.d/gluster.list apt-get update apt-get install glusterfs-server
Queremos montar lo siguiente:
En el /etc/hosts añadimos los dos servidores:
root@proxmox1:~# cat /etc/hosts 127.0.0.1 localhost 192.168.2.1 proxmox1 192.168.2.2 proxmox2
Conectamos los dos servidores. Desde el server1:
root@proxmox1:~# gluster peer probe proxmox2
Vemos que están conectados:
root@proxmox1:~# gluster peer status Number of Peers: 1 Hostname: proxmox2 Uuid: 62eecf86-2e71-4487-ac5b-9b5f16dc0382 State: Peer in Cluster (Connected)
Y desde el server2 igual
root@proxmox2:~# gluster peer status Number of Peers: 1 Hostname: proxmox1 Uuid: 061807e7-75a6-4636-adde-e9fef4cfa3ec State: Peer in Cluster (Connected)
Creamos las particiones y formateamos en xfs
Montamos las particiones en /gluster/brick1 y /gluster/brick2
# blkid
/dev/sda3: UUID="6afd599f-ea83-4c19-bc71-8ebfce42a332" TYPE="xfs" /dev/sdb3: UUID="bd39fa7a-6b23-4b43-89e0-693b61ba4581" TYPE="xfs"
Fichero /etc/fstab
#brick 1 UUID="6afd599f-ea83-4c19-bc71-8ebfce42a332" /glusterfs/brick1 xfs rw,inode64,noatime,nouuid 0 1 #brick 2 UUID="bd39fa7a-6b23-4b43-89e0-693b61ba4581" /glusterfs/brick2 xfs rw,inode64,noatime,nouuid 0 1
Creamos el volúmen. Mejor un volumen grande que dos pequeños:
gluster volume create volumen_gluster replica 2 transport tcp proxmox1:/bricks/disc1/brick1 proxmox2:/bricks/disc1/brick1 proxmox1:/bricks/disc2/brick2 proxmox2:/bricks/disc2/brick2
volume create: volumen_gluster: success: please start the volume to access data
Lo iniciamos:
root@proxmox1:~# gluster volume start volumen_gluster volume start: volumen_gluster1: success
Miramos el estado:
# gluster volume status Status of volume: volumen_gluster Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick proxmox1:/bricks/disc1/brick1 49152 0 Y 8938 Brick proxmox2:/bricks/disc1/brick1 49154 0 Y 7721 Brick proxmox1:/bricks/disc2/brick2 49153 0 Y 8957 Brick proxmox2:/bricks/disc2/brick2 49155 0 Y 7740 Self-heal Daemon on localhost N/A N/A Y 8977 Self-heal Daemon on proxmox2 N/A N/A Y 7760 Task Status of Volume volumen_gluster ------------------------------------------------------------------------------ There are no active volume tasks
Conectar como cliente
#mount -t glusterfs proxmox1:/volumen_gluster /glusterfs
/etc/fstab
proxmox1:/volumen_gluster /glusterfs glusterfs defaults,_netdev 0 2
Almacenamiento compartido Proxmox
De momento los containers no soportan GlusterFS directamente desde proxmox, las VMs si.
Montamos /glusterfs y lo ponemos como almacenamiento de Containers (y también de VMs):
NFS
Montamos el recurso por nfs en el servidor de proxmox. En los containers los montamos por bind:
En la carpeta /etc/pve/lxc editamos los ficheros *.conf
Nota: No poner / delante de container/folder
lxc.mount.entry: /host/folder container/folder none bind,create=dir,optional 0 0
Fuente: https://pve.proxmox.com/wiki/LXC_Bind_Mounts Ejemplo:
lxc.mount.entry: /mnt/pelis mnt/pelis none bind,create=dir,optional 0 0 lxc.mount.entry: /mnt/series mnt/series none bind,create=dir,optional 0 0