Test de la fonctionnalité « boom » dispo sur RHEL 7.5 Beta & dernières versions de Fedora

Une fonctionnalité dont j’ai très peu entendu parler… mais le fait que la fonctionnalité soit prévue d’être activée dans la prochaine RHEL a attiré mon attention

De quoi s’agit-il ? Et bien d’un petit programme en python qui s’interface avec grub2, si grub a le patch BLS (RHEL 7 & dernières versions de Fedora) comme indiqué sur le site upstream :
https://github.com/bmr-cymru/boom

OK, mais c’est quoi l’intérêt du dit programme ? Bah c’est simplement de pouvoir booter très facilement sur un snapshot LVM du / d’un serveur et donc de pouvoir revenir rapidement sur une version d’OS précédent l’application de patchs…. Et là ça rejoint justement quelque chose que je regardais en ce moment et j’avais justement creusé plusieurs solutions telles :

– Un miroir de LV que je peux synchroniser et désynchroniser à loisir… Le mirroring LV commence à bien mûrir désormais, les fonctionnalités –splitmirrors & –trackchanges sont plutôt intéressantes à regarder. En fait ce qui manque vraiment au niveau du mirroring au niveau LV c’est un bon support au niveau des distributions qui ne chargent souvent pas les modules correspondants au niveau de leur noyau de boot par défaut et surtout de leur noyau en mode rescue… Comme malgré tout c’est ce que j’ai mis en place au niveau de mon OS sur mes serveurs chez OVH, si j’ai un jour du temps je finirais peut-être par proposer un patch pour Debian & Fedora au niveau de leur installateur.

– Les snapshots LV… Là encore j’ai découvert qu’il existait désormais deux types de snapshot, les snapshot classique et le splitsnapshot, je dois creuser les différences…

Sur ces deux solutions, le truc à gérer c’est qu’il faut faire les entrées « à la main » dans grub pour pouvoir booter rapidement en cas de soucis sur la version N-1… Et c’est là justement qu’intervient boom, j’y reviens dans 2 secondes…

– La troisième solution consiste à avoir un autre VG (potentiellement sur le même DD) activable/désactivable à loisir contenant une copie complète au niveau des FS…. Et là rsync avec l’option -x peut être intéressante.

Reprenons nos explications sur boom…

Par défaut tout semble configurer pour que boom apparaisse dans grub

[root@testrhel75 ~]# more /etc/default/boom
BOOM_USE_SUBMENU= »yes »
BOOM_SUBMENU_NAME= »Snapshots »
BOOM_ENABLE_GRUB= »yes »
[root@testrhel75 ~]#

Et le fichier /etc/grub.d/42_boom montre bien que la création des entrées va se faire lors du lancement du grub2-mkconfig

Mais par défaut rien n’est présent… Et c’est bien là que la doc est pas top. Il faut « juste » lancer la commande suivante :

[root@testrhel75 ~]# boom profile create --from-host --uname-pattern Linux
Created profile with os_id 2bd22ca:
OS ID: « 2bd22ca1d1cf1a59e24623c92fcbb6aa7fbc867c »,
Name: « Red Hat Enterprise Linux Server », Short name: « rhel »,
Version: « 7.5 (Maipo) », Version ID: « 7.5 »,
UTS release pattern: « Linux »,
Kernel pattern: « /vmlinuz-%{version} », Initramfs pattern: « /initramfs-%{version}.img »,
Root options (LVM2): « rd.lvm.lv=%{lvm_root_lv} »,
Root options (BTRFS): « rootflags=%{btrfs_subvolume} »,
Options: « root=%{root_device} ro %{root_opts} »
[root@testrhel75 ~]#

A partir de là on voit que le profil existe :

[root@testrhel75 ~]# boom profile list
OsID Name OsVersion
2bd22ca Red Hat Enterprise Linux Server 7.5 (Maipo)
[root@testrhel75 ~]#

Créons alors un nouveau LV de snapshot… (Note: On a pas le droit d’appeler les LV en commençant par « snapshot »)

[root@testrhel75 ~]# lvcreate -s -L500M -n snap20180222 /dev/mapper/rhel-root
Logical volume « snap20180222 » created.
[root@testrhel75 ~]#

[root@testrhel75 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel owi-aos— <17.00g
snap20180222 rhel swi-a-s— 500.00m root 0.02
swap rhel -wi-ao—- 2.00g
[root@testrhel75 ~]#

On peut alors créer l’entrée correspondante dans boom :
boom create --title snap20180222 --root-device /dev/mapper/rhel-snap20180222 --profile 2bd22ca

Et relancer la création du fichier de configuration de grub :
grub2-mkconfig > /boot/grub2/grub.cfg

J’ai une erreur sur le duplicate UUID ce qui est bien normal 😉
[root@testrhel75 ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.10.0-830.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-830.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-46f4128a747747718e53b6edf2592896
Found initrd image: /boot/initramfs-0-rescue-46f4128a747747718e53b6edf2592896.img
[126444.820507] XFS (dm-4): Filesystem has duplicate UUID beb5c54c-a3b1-4e28-92b1-61df4b1873ea – can’t mount
done
[root@testrhel75 ~]

On peut vérifier que grub a désormais la config liée à boom activé si on a les lignes suivantes dans le grub.cfg

### BEGIN /etc/grub.d/42_boom ###
submenu « Snapshots » {
insmod blscfg
bls_import
}

D’ailleurs il n’y a pas besoin de relancer la création du grub.cfg une fois cette opération faite…

On peut désormais faire un touch d’un fichier (mais on pourrait faire une mise à jour de tout un tas de package RHEL, hein)

[root@testrhel75 ~]# touch /toto
[root@testrhel75 ~]#

Et rebooter sur notre snapshot :

Red Hat Enterprise Linux Server (3.10.0-830.el7.x86_64) 7.5 (Maipo)
Red Hat Enterprise Linux Server (0-rescue-46f4128a747747718e53b6edf25928>
Snapshots

Use the ^ and v keys to change the selection.
Press ‘e’ to edit the selected item, or ‘c’ for a command prompt.

 

snap20180222

Use the ^ and v keys to change the selection.
Press ‘e’ to edit the selected item, or ‘c’ for a command prompt.
Press Escape to return to the previous menu.

Et là c’est le drame…. J’utilise virsh en ligne de commande et donc avec l’émulation du port série et l’option n’est pas reprise…. Ce qui est vite corrigé en faisant ça :

boom profile edit 2bd22ca --os-options="root=%{root_device} ro %{root_opts} console=ttyS0"

Et en détruisant/recréant l’entrée correspondant à mon snapshot…

Désormais si je boote sur le snapshot et lorsque je fais un ls sur /, je ne trouve pas le fichier /toto créé précédemment…

En espérant avoir un peu éclairé vos lanternes sur le sujet boom 😉

 

Share

Installer une CentOS en ligne de commande pour KVM

L’incantation magique donne cela (attention à ne pas oublier la partie carte réseau virtuelle si vous êtes chez OVH, la mac adresse se fixe via l’interface d’administration…) :

virt-install –network model=virtio,bridge=br0,mac=02:00:00:e0:49:da –autostart –disk /dev/VGdata/LVvirtualserver1 -l http://archive.kernel.org/centos-vault/6.2/os/x86_64/ –memory 1024 –name VM1 –accelerate –graphics none –hvm -x « console=tty0 console=ttyS0,115200n8 »

Vous pouvez améliorer la commande avec un fichier de kickstart pour pouvoir gérer plus soigneusement la partie LVM… mais vous avez l’idée.

Attention je n’ai pas réussi à faire fonctionner la ligne avec de la CentOS 5.x, uniquement avec CentOS 6 & 7

 

Share

Nested VMWARE… Partie 3 – Création/Installation/Configuration de la machine virtuelle Nas4Free…

Suite du montage du Labo ESXi virtualisé !

Créons la coquille vide pour Nas4Free :

1-AjoutMachineVirtuelleNas4Free-1 1-AjoutMachineVirtuelleNas4Free-2 1-AjoutMachineVirtuelleNas4Free-3 1-AjoutMachineVirtuelleNas4Free-4 1-AjoutMachineVirtuelleNas4Free-5

Nas4Free est à base de BSD :1-AjoutMachineVirtuelleNas4Free-6

On alloue beaucoup de disque parce qu’on va ensuite le découper pour le présenter en NFS et en iSCSI (le screenshot est à revoir puisqu’il faut prévoir un disque de 8 Go et un disque de 300 Go pour bien séparer installation des données) :1-AjoutMachineVirtuelleNas4Free-7

Avec deux points d’accès NFS et deux points d’accès en iSCSI :1-AjoutMachineVirtuelleNas4Free-8 1-AjoutMachineVirtuelleNas4Free-9 1-AjoutMachineVirtuelleNas4Free-10On boote sur l’iso d’installation et après la phase de boot on sélectionne le choix « 9 » pour l’installation :

install_nas4free_1

Puis on choisi le mode « Embedded » :install_nas4free_2 install_nas4free_3 install_nas4free_4 choixdisqueNas4free
install_nas4free_6 install_nas4free_7 install_nas4free_8 install_nas4free_9

On reboot (et on fait attention de retirer l’ISO ou de booter d’abord sur le disque dur) puis on choisi la configuration de la partie IP :install_nas4free_11 install_nas4free_12 install_nas4free_13 install_nas4free_14 install_nas4free_15 install_nas4free_16 install_nas4free_17On peut alors paramétrer la deuxième interface du Windows d’Admin pour pointer vers l’IP 10.10.0.2

Et à partir de là, on continue avec l’interface web depuis le poste Windows d’Admin (utilisateur: admin, mot de passe par défaut : nas4free)

Part3-InstallationNas4free-1

Part3-InstallationNas4free-2 Part3-InstallationNas4free-3

On ne fait pas le reboot tout de suite….Part3-InstallationNas4free-4 Part3-InstallationNas4free-5 Part3-InstallationNas4free-6 Part3-InstallationNas4free-7 Part3-InstallationNas4free-8On reboote… et on commence alors la configuration disque :

Part3-InstallationNas4free-9 Part3-InstallationNas4free-10 Part3-InstallationNas4free-11 Part3-InstallationNas4free-12 Part3-InstallationNas4free-13 Part3-InstallationNas4free-14 Part3-InstallationNas4free-15 Part3-InstallationNas4free-16 Part3-InstallationNas4free-17 Part3-InstallationNas4free-18 Part3-InstallationNas4free-19 Part3-InstallationNas4free-20 Part3-InstallationNas4free-21

Pas certain que la partie DataSet soit obligatoire (à vérifier)Part3-InstallationNas4free-22 Part3-InstallationNas4free-23 Part3-InstallationNas4free-24 Part3-InstallationNas4free-25 Part3-InstallationNas4free-26 Part3-InstallationNas4free-27 Part3-InstallationNas4free-28 Part3-InstallationNas4free-29 Part3-InstallationNas4free-30 Part3-InstallationNas4free-31 Part3-InstallationNas4free-32 Part3-InstallationNas4free-33 Part3-InstallationNas4free-34 Part3-InstallationNas4free-35 Part3-InstallationNas4free-36 Part3-InstallationNas4free-37 Part3-InstallationNas4free-38 Part3-InstallationNas4free-39 Part3-InstallationNas4free-40 Part3-InstallationNas4free-41 Part3-InstallationNas4free-42 Part3-InstallationNas4free-43 Part3-InstallationNas4free-44 Part3-InstallationNas4free-45 Part3-InstallationNas4free-46

Share

Nested VMWARE… Partie 2 – Ajout des vswitchs…

Créons désormais les vSwitchs associés aux différents réseaux dont nous avons avoir besoin…

J’ai fait trois schémas pour représenter ce que je souhaite faire :

schema_vmware_1schema_vmware_2schema_vmware_3Commençons donc à créer le vSwitch VLANAdmin :

VlanAdmin-1 VlanAdmin-2 VlanAdmin-3 VlanAdmin-4 VlanAdmin-5 VlanAdmin-6 VlanAdmin-7 VlanAdmin-8

Il manque une copie d’écran ici, le mode prosmicuité étant à activer au niveau de « Commutateur virtuel » et « Commutateur standard » (j’ai perdu plusieurs heures à trouver pourquoi cela déconnait) :

VlanAdmin-9Répétons l’opération pour les différents réseaux à créer…

Puis affectons aux différents serveurs des cartes réseaux pour ces VLANs :

1-AjoutVLANAdminServerWindows_1 1-AjoutVLANAdminServerWindows_2 1-AjoutVLANAdminServerWindows_3 2-AjoutVLANAdminServerESXiNested1_1 2-AjoutVLANAdminServerESXiNested1_2 3-AjoutVLANNFSiSCSIServerESXiNested1_1To be continued…

 

 

Share