From 82296573fa033e648e6f644dcb8c8e046a4cc648 Mon Sep 17 00:00:00 2001 From: gauvainboiche Date: Thu, 23 Oct 2025 16:48:11 +0200 Subject: [PATCH] Renaming of files to reflect that Day 1 wes not about any note-taking --- Readme.md | 7 + Semaine_01/Jour_01.md | 76 ----- Semaine_01/Jour_02.md | 173 +++------- Semaine_01/Jour_03.md | 318 +++++++----------- ...e + Correction sur La containérisation.pdf | Bin ...ncée - 02.1.2 Virtualiser des machines.pdf | Bin ...érents types d_infrastructure avancées.pdf | Bin ...oductions aux Infrastructures Avancées.pdf | Bin .../Questionnaires/Reponses.md | 0 Semaine_01/Jour_04.md | 253 ++++++++++++++ 10 files changed, 417 insertions(+), 410 deletions(-) create mode 100644 Readme.md delete mode 100644 Semaine_01/Jour_01.md rename Semaine_01/{Jour_02 => Jour_03}/Questionnaires/02.2.2 Questionnaire + Correction sur La containérisation.pdf (100%) rename Semaine_01/{Jour_02 => Jour_03}/Questionnaires/Infrastructure Avancée - 02.1.2 Virtualiser des machines.pdf (100%) rename Semaine_01/{Jour_02 => Jour_03}/Questionnaires/Questionnaire 02. Les différents types d_infrastructure avancées.pdf (100%) rename Semaine_01/{Jour_02 => Jour_03}/Questionnaires/Questionnaire et correction 01. Introductions aux Infrastructures Avancées.pdf (100%) rename Semaine_01/{Jour_02 => Jour_03}/Questionnaires/Reponses.md (100%) create mode 100644 Semaine_01/Jour_04.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..ad1bbf9 --- /dev/null +++ b/Readme.md @@ -0,0 +1,7 @@ +# Cours LiveCampus + +Par Gauvain Boiché, promotion MCS 2027.2 de LiveCampus. Début des cours 20 octobre 2025. + +## Projet + +Il est privé pour que les réponses ne fuitent pas. Mais il est disponible sur demande pour vérifier... je ne sais pas, mon assiduité ? Mes réponses ? Ma hiérarchistation des dossiers de prises de notes ? \ No newline at end of file diff --git a/Semaine_01/Jour_01.md b/Semaine_01/Jour_01.md deleted file mode 100644 index 48f23f4..0000000 --- a/Semaine_01/Jour_01.md +++ /dev/null @@ -1,76 +0,0 @@ -# L'infra avancée : - -## Exercice 1 - -### Lancer une machine - -`qemu-img create -f qcow2 'C:\Program Files\qemu\testVM.qcow2' 10G` - -`qemu-system-x86_64 -m 2048 -hda 'C:\_VMs\testVM.qcow2' -cdrom 'D:\Users\GaWin\Downloads\_Compressed\debian-13.1.0-amd64-netinst.iso' -boot d` - -Pour lancer une machine depuis le disque : - -`qemu-system-x86_64 -m 4096 -smp 4 -hda 'C:\_VMs\testVM.qcow2' -boot c` - -- -boot d : Boot sur le CD/ROM -- -boot c : Boot sur le Disque Dur -- m XXXX : Alloue une mémoire RAM fixe -- smp X : Alloue un nombre de coeurs virtuels fixe - -Pour convertir le .qcow2 en .vdi, dans l'interface c'est plus clair. - -## Exercice 2 - -### Créer une VM - -Pour refaire une VM en CLI : - -``` -vboxmanage createvm --basefolder="C:\_VMs\VirtualCreationCLI" --register --name "VirtualBoxCLI" - -vboxmanage storagectl "VirtualBoxCLI" --name "sata-controller" --add sata --controller IntelAHCI --portcount 1 --bootable on - -vboxmanage storageattach "VirtualBoxCLI" --storagectl "sata-controller" --port 0 --device 0 --type hdd --medium ".\test_copy.vdi" - -vboxmanage modifyvm "VirtualBoxCLI" --memory 4096 --cpus 4 -``` - -### Convertir un disque virtuel .qcow2 en CLI - -https://github.com/michaelrudy/qemu-img-convert - -D'abord, dans la VM d'origine, il faut préparer la transition : - -``` -sudo tee /etc/dracut.conf.d/hyperv.conf >/dev/null <<'EOF' -add_drivers+=" hv_vmbus hv_storvsc hv_netvsc hv_utils " -hostonly="no" -EOF - -sudo dracut -f --kver "$(uname -r)" - -ls -lh /boot/initramfs-$(uname -r).img ### pour confirmer - -cat /etc/fstab -blkid - -sudo shutdown -h now -``` - -`qemu-img convert -f qcow2 -O vhdx -o subformat=dynamic .\test.qcow2 .\test_copy.vhdx` - -Bizarrement, pour que la conversion soit prise en compte par Hyper-V, il faut lancer cette commande : - -`fsutil sparse setflag .\test_copy.vhdx 0` - -### Cloner une VM en CLI - -Exporter pour VirtualBox -`vboxmanage clonevm "VirtualBoxCLI" --basefolder ".\NewVirtualBoxCLI" --name "NewVirtualBoxCLI" --register` - -Exporter pour HyperV -``` -Export-VM -Name "HyperVCLI" -Path "C:\_VMs\HyperVCLI" -CaptureLiveState CaptureSavedState - -Import-VM -Name "NewHyperVCLI" -Path "C:\_VMs\HyperVCLI\{ID-de-ses-morts}.vmcx" -Copy -GenerateNewId -VirtualMachinePath "C:\_VMs\NewHyperVCLI" -VhdDestinationPath "C:\_VMs\NewHyperVCLI" -``` \ No newline at end of file diff --git a/Semaine_01/Jour_02.md b/Semaine_01/Jour_02.md index 49d8a37..48f23f4 100644 --- a/Semaine_01/Jour_02.md +++ b/Semaine_01/Jour_02.md @@ -1,161 +1,76 @@ -# Infra avancée - -## Cours - -### Contenerisation - -- Namespace : les processus ne peuvent pas voir les ressources utilisées par l'hôte ou ses congénères -- cgroups : contrôle des ressources allouées à un processus - -#### Solutions : - -- Docker / Podman -- OpenVZ -- Les zones (Solaris) -- Les jails (FreeBSD) -- LXC - -### LXC - -``` -# Avec interactivté -sudo lxc-create -n NOM_CONTENEUR -t download - -# Sans interactivité (pour script) -sudo lxc-create --template=download --name NOM_CONTENEUR -- --dist NOM_DISTRIBUTION --release NUMERO_VERSION --arch amd64 -``` - -``` -# Démarrer -sudo lxc-start -n NOM_CONTENEUR - -# Entrer dans un conteneur -sudo lxc-attach -n NOM_CONTENEUR - -# Stopper -sudo lxc-stop -n NOM_CONTENEUR - -# Supprimer -sudo lxc-destroy -n NOM_CONTENEUR - -# Lister -sudo lxc-ls (--active, --running, --frozen) - -# Info sur conteneur précis -sudo lxc-info -n NOM_CONTENEUR -``` - -Fichier config du conteneur (/var/lib/lxc/xxx) : -``` -# Méthode 1 : Montage d'un dossier de l'hôte -lxc.mount.entry = /dossier_hote dossier_interne_conteneur none bind,create=dir 0 0 - -# Méthode 2 : Montage d'un disque entier ou partition de l'hôte -lxc.mount.entry = /dev/disque_ou_partition dossier_interne_conteneur FS_type defaults,create=dir 0 0 -``` +# L'infra avancée : ## Exercice 1 -https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86_64/alpine-xen-3.17.10-x86_64.iso +### Lancer une machine -``` -wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.1.0-amd64-netinst.iso +`qemu-img create -f qcow2 'C:\Program Files\qemu\testVM.qcow2' 10G` -mv debian-13.1.0-amd64-netinst.iso debian.iso +`qemu-system-x86_64 -m 2048 -hda 'C:\_VMs\testVM.qcow2' -cdrom 'D:\Users\GaWin\Downloads\_Compressed\debian-13.1.0-amd64-netinst.iso' -boot d` -sudo chmod 666 debian.iso -``` +Pour lancer une machine depuis le disque : -Ensuite +`qemu-system-x86_64 -m 4096 -smp 4 -hda 'C:\_VMs\testVM.qcow2' -boot c` -``` -sudo virt-install \ ---name test-vm \ ---os-variant=debiantesting \ ---ram 2048 \ ---vcpus 2 \ ---location ./debian.iso \ ---disk path=/var/lib/libvirt/images/vm.qcow2,size=15,format=qcow2 \ ---graphics none \ ---console pty,target_type=serial \ ---extra-args "console=ttys0,115200n8 serial" -``` +- -boot d : Boot sur le CD/ROM +- -boot c : Boot sur le Disque Dur +- m XXXX : Alloue une mémoire RAM fixe +- smp X : Alloue un nombre de coeurs virtuels fixe -`virsh attach-interface --type bridge --source enp0s3 --model virtio test-vm` +Pour convertir le .qcow2 en .vdi, dans l'interface c'est plus clair. ## Exercice 2 -### Petit A +### Créer une VM -C'est installé. - -### Petit B +Pour refaire une VM en CLI : ``` -sudo lxc-create -n ConteneurDebian -t download -# debian, bullseye, amd64 +vboxmanage createvm --basefolder="C:\_VMs\VirtualCreationCLI" --register --name "VirtualBoxCLI" -sudo lxc-start ConteneurDebian -sudo lxc-attach ConteneurDebian +vboxmanage storagectl "VirtualBoxCLI" --name "sata-controller" --add sata --controller IntelAHCI --portcount 1 --bootable on -### In the container ### -uname -a +vboxmanage storageattach "VirtualBoxCLI" --storagectl "sata-controller" --port 0 --device 0 --type hdd --medium ".\test_copy.vdi" -> Linux ConteneurDebian 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64 GNU/Linux - -cat /proc/version -> Linux version 6.1.0-40-amd64 (gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) - -exit - -### Outside the container ### - -sudo lxc-ls -> ConteneurDebian Test-Linux - -sudo lxc-ls --running -> ConteneurDebian - -sudo lxc-stop ConteneurDebian - -sudo lxc-ls --running -> +vboxmanage modifyvm "VirtualBoxCLI" --memory 4096 --cpus 4 ``` -### Petit C +### Convertir un disque virtuel .qcow2 en CLI + +https://github.com/michaelrudy/qemu-img-convert + +D'abord, dans la VM d'origine, il faut préparer la transition : ``` -sudo ls -glAiF /var/lib/lxc/ -> ConteneurDebian -> Test-Linux +sudo tee /etc/dracut.conf.d/hyperv.conf >/dev/null <<'EOF' +add_drivers+=" hv_vmbus hv_storvsc hv_netvsc hv_utils " +hostonly="no" +EOF -sudo ls -glAiF /var/lib/lxc/ConteneurDebian -> -rw-r----- root config -> drwxr-xr-x root rootfs/ +sudo dracut -f --kver "$(uname -r)" -sudo du -h -glAiF /var/lib/lxc/ConteneurDebian -> ... -> 412M +ls -lh /boot/initramfs-$(uname -r).img ### pour confirmer -sudo lxc-copy -n ConteneurDebian -N NewConteneur ### -N pour NewName +cat /etc/fstab +blkid -sudo ls -glAiF /var/lib/lxc/ -> ConteneurDebian -> NewConteneur -> Test-Linux +sudo shutdown -h now ``` -### Petit D +`qemu-img convert -f qcow2 -O vhdx -o subformat=dynamic .\test.qcow2 .\test_copy.vhdx` +Bizarrement, pour que la conversion soit prise en compte par Hyper-V, il faut lancer cette commande : + +`fsutil sparse setflag .\test_copy.vhdx 0` + +### Cloner une VM en CLI + +Exporter pour VirtualBox +`vboxmanage clonevm "VirtualBoxCLI" --basefolder ".\NewVirtualBoxCLI" --name "NewVirtualBoxCLI" --register` + +Exporter pour HyperV ``` -sudo nano /var/lib/lxc/ConteneurDebian/config - -### Dans le fichier config ### - -# Folder Attachment -lxc.mount.entry = /mnt/lxc-debian-storage /var/lib/lxc/ConteneurDebian/rootfs/data none bind,create=dir 0 0 - -### Fin du fichier config ### - +Export-VM -Name "HyperVCLI" -Path "C:\_VMs\HyperVCLI" -CaptureLiveState CaptureSavedState +Import-VM -Name "NewHyperVCLI" -Path "C:\_VMs\HyperVCLI\{ID-de-ses-morts}.vmcx" -Copy -GenerateNewId -VirtualMachinePath "C:\_VMs\NewHyperVCLI" -VhdDestinationPath "C:\_VMs\NewHyperVCLI" ``` \ No newline at end of file diff --git a/Semaine_01/Jour_03.md b/Semaine_01/Jour_03.md index 84e9cc2..49d8a37 100644 --- a/Semaine_01/Jour_03.md +++ b/Semaine_01/Jour_03.md @@ -1,253 +1,161 @@ # Infra avancée -## Cours 1 +## Cours -Redimensionner une partition sur Linux +### Contenerisation + +- Namespace : les processus ne peuvent pas voir les ressources utilisées par l'hôte ou ses congénères +- cgroups : contrôle des ressources allouées à un processus + +#### Solutions : + +- Docker / Podman +- OpenVZ +- Les zones (Solaris) +- Les jails (FreeBSD) +- LXC + +### LXC ``` -# Pour EXT2/3/4 -sudo resize2fs -# Pour XFS -sudo xfs_growfs +# Avec interactivté +sudo lxc-create -n NOM_CONTENEUR -t download + +# Sans interactivité (pour script) +sudo lxc-create --template=download --name NOM_CONTENEUR -- --dist NOM_DISTRIBUTION --release NUMERO_VERSION --arch amd64 ``` -Traiter les disques sur MDADM ``` -# Déclarer disque défectueux -sudo mdadm --fail /dev/ -# Le retirer -sudo mdadm --remove /dev/ -# Le rajouter -sudo mdadm --add /dev/mdx /dev/sdx # AJout comme Hot-Spare +# Démarrer +sudo lxc-start -n NOM_CONTENEUR + +# Entrer dans un conteneur +sudo lxc-attach -n NOM_CONTENEUR + +# Stopper +sudo lxc-stop -n NOM_CONTENEUR + +# Supprimer +sudo lxc-destroy -n NOM_CONTENEUR + +# Lister +sudo lxc-ls (--active, --running, --frozen) + +# Info sur conteneur précis +sudo lxc-info -n NOM_CONTENEUR ``` -Pour enlever les traces du raid : - +Fichier config du conteneur (/var/lib/lxc/xxx) : ``` -sudo mdadm --zero-superblock /dev/sdx +# Méthode 1 : Montage d'un dossier de l'hôte +lxc.mount.entry = /dossier_hote dossier_interne_conteneur none bind,create=dir 0 0 + +# Méthode 2 : Montage d'un disque entier ou partition de l'hôte +lxc.mount.entry = /dev/disque_ou_partition dossier_interne_conteneur FS_type defaults,create=dir 0 0 ``` ## Exercice 1 -Tuto parfait : https://ruan.dev/blog/2022/06/29/create-a-raid5-array-with-mdadm-on-linux +https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86_64/alpine-xen-3.17.10-x86_64.iso ``` -sudo apt install mdadm -y +wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.1.0-amd64-netinst.iso -lsblk -> sde, sdg, sdh +mv debian-13.1.0-amd64-netinst.iso debian.iso -fdisk /dev/sdx - n # ajouter une -n-ouvelle partition - p # partition -p-rimaire - 1 # index de la partition - [default] # bloc de début - [default] # bloc de fin - - t # modifier le -t-ype d'une partition - L # -l-iste tous les codes hexa - fd # RAID Linux auto - - w # écrire (-w-rite) la table sur le disque et quitter - -sudo mdadm --create /dev/md127 --level=5 --raid-devices=3 /dev/sde1 /dev/sdg1 /dev/sdh1 - -mkfs.ext4 /dev/md127 - -sudo mount /dev/md127 /mnt +sudo chmod 666 debian.iso ``` -Eteindre, ajouter un disque, étendre la partition -``` -lsblk -> sdh - -fdisk /dev/sdh - n - p - 1 - [default] - [default] - - t - fd - - w - -sudo mdadm --add /dev/md127 /dev/sdh1 - -sudo mdadm --detail /dev/md127 -> Active Devices : 3 -> Working Devices : 4 -> Spare Devices : 1 - -sudo mdadm --add /dev/md127 --raid-devices=4 - -sudo mdadm --detail /dev/md127 -> Active Devices : 4 -> Working Devices : 4 -> Spare Devices : 0 - -sudo e2fsck -f /dev/md127 - -sudo resize2fs /dev/md127 - -sudo mount /dev/md127 /mnt/sauvegarde - -df -h /mnt/sauvegarde -> Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur -> /dev/md127 3,0G 28K 2,8G 1% /mnt/sauvegarde -``` - -## Cours 2 - -### LVM - -Créer volume LVM depuis disque physique +Ensuite ``` -pvcreate /DEVICE1 /DEVICE2 /DEVICE3 - -# Intégrer ces volumes à un groupe de volume -vgcreate NOM_DU_VG /DEVICE1 /DEVICE2 - -# On découpe ces volumes -lvcreate -l TAILLE -n NOM_DU_LV NOM_DU_VG +sudo virt-install \ +--name test-vm \ +--os-variant=debiantesting \ +--ram 2048 \ +--vcpus 2 \ +--location ./debian.iso \ +--disk path=/var/lib/libvirt/images/vm.qcow2,size=15,format=qcow2 \ +--graphics none \ +--console pty,target_type=serial \ +--extra-args "console=ttys0,115200n8 serial" ``` -VG et LV peuvent être accessibles par plusieurs chemins - -`/dev/mapper/` - -Identifier LV ou VG - -``` -# Identifier LV ou VG -sudo lvdisplay vgdisplay - -sudo lvremove - -sudo -``` - -Etendre VG - -``` -sudo vgdisplay - -sudo vgextend NOM_DU_VG/PV_SUPPLEMENTAIRE - -# Pour tester - -``` - -Identifier le LV à étendre - -``` -sudo lvdisplay - -sudo lvextend MON_VG/NOM_DU_LV /PV_SUPPLEMENTAIRE - -# Option pour donner une taille délimitée -sudo lvextend -L +00M -``` - -Il faut redimensionner à chaud après l'extension avec `--resizefs` à chaud, toucher à un LV ne change pas la taille du système de fichiers. - -Réduire un VG - -``` -sudo vgdisplay - -sudo -``` +`virsh attach-interface --type bridge --source enp0s3 --model virtio test-vm` ## Exercice 2 -### Partie 1 +### Petit A -A créer, avec chacun deux disques : -``` -Nom MD Taille Type FS Nom VL1-nom VL1-taille VL1-mnt VL2-nom VL2-taille VL2-mnt ------------------------------------------------------------------------------------------------------- -/dev/md123 2GO RAID1 btrfs "Production" "Current" 50% /mnt/prod/Current - - - -/dev/md124 2GO RAID1 XFS "Sauvegarde" "Current" 100% /mnt/sauv/current - - - -/dev/md125 2GO RAID1 EXT4 "Développement" "x86_64" 60% /mnt/dev/x86_64 "ARM" 40% /mnt/dev/arm -/dev/md126 2GO RAID1 EXT4 "Laboratoire" "Current" 100% /mnt/labo/current - - -``` +C'est installé. -Maintenant on colle les ressources. - -Pour attribuer des % de taille aux LV : -`sudo lvcreate -l 100%FREE # Toute la place restante` -`sudo lvcreate -l 50%VG # 50% de la taille totale du VG` -`sudo lvcreate -l 30%FREE # 30% de la place restante ACTUELLE` - -- -``` -sudo mdadm --create /dev/md12x --level=1/0 --raid-devices=2 /dev/sdx1 /dev/sdy1 - -sudo pvcreate /dev/md123 -sudo vgcreate Production /dev/md123 -sudo lvcreate -l 50%VG -n Current Production - -sudo pvcreate /dev/md124 -sudo vgcreate Sauvegarde /dev/md124 -sudo lvcreate -l 100%VG -n Current Sauvegarde - -sudo pvcreate /dev/md125 -sudo vgcreate Developpement /dev/md125 -sudo lvcreate -l 60%VG -n x86_64 Developpement -sudo lvcreate -l 100%FREE -n ARM Developpement - -sudo pvcreate /dev/md126 -sudo vgcreate Laboratoire /dev/md126 -sudo lvcreate -l 100%VG -n Current Laboratoire - -sudo lvs -o lv_name,vg_name,lv_size,attr - -sudo mkfs.btrfs /dev/mapper/Production-Current -sudo mkfs.xfs /dev/mapper/Sauvegarde-Current -sudo mkfs.ext4 /dev/mapper/Developpement-x86_64 -sudo mkfs.ext4 /dev/mapper/Developpement-ARM -sudo mkfs.ext4 /dev/mapper/Laboratoire-Current - -sudo mount /dev/mapper/Production-Current /mnt/prod/current -sudo mount /dev/mapper/Sauvegarde-Current /mnt/sauv/current -sudo mount /dev/mapper/Developpement-x86_64 /mnt/dev/x86_64 -sudo mount /dev/mapper/Developpement-ARM /mnt/dev/arm -sudo mount /dev/mapper/Laboratoire-Current /mnt/labo/current -``` - -### Partie 2 +### Petit B ``` -sudo mdadm --manage /dev/md123 --fail /dev/sdh +sudo lxc-create -n ConteneurDebian -t download +# debian, bullseye, amd64 -sudo mdadm --manage /dev/md123 --remove /dev/sdh +sudo lxc-start ConteneurDebian +sudo lxc-attach ConteneurDebian -sgdisk -Z /dev/sdi -sgdisk -n1:0:0 -t1:fd00 /dev/sdi +### In the container ### +uname -a -mdadm --manage /dev/md123 --add /dev/sdq +> Linux ConteneurDebian 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64 GNU/Linux + +cat /proc/version +> Linux version 6.1.0-40-amd64 (gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) + +exit + +### Outside the container ### + +sudo lxc-ls +> ConteneurDebian Test-Linux + +sudo lxc-ls --running +> ConteneurDebian + +sudo lxc-stop ConteneurDebian + +sudo lxc-ls --running +> ``` -### Partie 3 +### Petit C ``` -sudo mdadm --add /dev/md126 /dev/sdi +sudo ls -glAiF /var/lib/lxc/ +> ConteneurDebian +> Test-Linux -sudo mdadm --grow /dev/md126 --raid-devices=3 +sudo ls -glAiF /var/lib/lxc/ConteneurDebian +> -rw-r----- root config +> drwxr-xr-x root rootfs/ -sudo pvresize /dev/md126 +sudo du -h -glAiF /var/lib/lxc/ConteneurDebian +> ... +> 412M -sudo lvextend -l +100%FREE /dev/mapper/Laboratoire-Current +sudo lxc-copy -n ConteneurDebian -N NewConteneur ### -N pour NewName -sudo resize2fs /dev/mapper/Laboratoire-Current +sudo ls -glAiF /var/lib/lxc/ +> ConteneurDebian +> NewConteneur +> Test-Linux ``` -### Partie 4 +### Petit D ``` -sudo mdadm --add /dev/md123 /dev/sdj +sudo nano /var/lib/lxc/ConteneurDebian/config + +### Dans le fichier config ### + +# Folder Attachment +lxc.mount.entry = /mnt/lxc-debian-storage /var/lib/lxc/ConteneurDebian/rootfs/data none bind,create=dir 0 0 + +### Fin du fichier config ### + + ``` \ No newline at end of file diff --git a/Semaine_01/Jour_02/Questionnaires/02.2.2 Questionnaire + Correction sur La containérisation.pdf b/Semaine_01/Jour_03/Questionnaires/02.2.2 Questionnaire + Correction sur La containérisation.pdf similarity index 100% rename from Semaine_01/Jour_02/Questionnaires/02.2.2 Questionnaire + Correction sur La containérisation.pdf rename to Semaine_01/Jour_03/Questionnaires/02.2.2 Questionnaire + Correction sur La containérisation.pdf diff --git a/Semaine_01/Jour_02/Questionnaires/Infrastructure Avancée - 02.1.2 Virtualiser des machines.pdf b/Semaine_01/Jour_03/Questionnaires/Infrastructure Avancée - 02.1.2 Virtualiser des machines.pdf similarity index 100% rename from Semaine_01/Jour_02/Questionnaires/Infrastructure Avancée - 02.1.2 Virtualiser des machines.pdf rename to Semaine_01/Jour_03/Questionnaires/Infrastructure Avancée - 02.1.2 Virtualiser des machines.pdf diff --git a/Semaine_01/Jour_02/Questionnaires/Questionnaire 02. Les différents types d_infrastructure avancées.pdf b/Semaine_01/Jour_03/Questionnaires/Questionnaire 02. Les différents types d_infrastructure avancées.pdf similarity index 100% rename from Semaine_01/Jour_02/Questionnaires/Questionnaire 02. Les différents types d_infrastructure avancées.pdf rename to Semaine_01/Jour_03/Questionnaires/Questionnaire 02. Les différents types d_infrastructure avancées.pdf diff --git a/Semaine_01/Jour_02/Questionnaires/Questionnaire et correction 01. Introductions aux Infrastructures Avancées.pdf b/Semaine_01/Jour_03/Questionnaires/Questionnaire et correction 01. Introductions aux Infrastructures Avancées.pdf similarity index 100% rename from Semaine_01/Jour_02/Questionnaires/Questionnaire et correction 01. Introductions aux Infrastructures Avancées.pdf rename to Semaine_01/Jour_03/Questionnaires/Questionnaire et correction 01. Introductions aux Infrastructures Avancées.pdf diff --git a/Semaine_01/Jour_02/Questionnaires/Reponses.md b/Semaine_01/Jour_03/Questionnaires/Reponses.md similarity index 100% rename from Semaine_01/Jour_02/Questionnaires/Reponses.md rename to Semaine_01/Jour_03/Questionnaires/Reponses.md diff --git a/Semaine_01/Jour_04.md b/Semaine_01/Jour_04.md new file mode 100644 index 0000000..84e9cc2 --- /dev/null +++ b/Semaine_01/Jour_04.md @@ -0,0 +1,253 @@ +# Infra avancée + +## Cours 1 + +Redimensionner une partition sur Linux + +``` +# Pour EXT2/3/4 +sudo resize2fs +# Pour XFS +sudo xfs_growfs +``` + +Traiter les disques sur MDADM +``` +# Déclarer disque défectueux +sudo mdadm --fail /dev/ +# Le retirer +sudo mdadm --remove /dev/ +# Le rajouter +sudo mdadm --add /dev/mdx /dev/sdx # AJout comme Hot-Spare +``` + +Pour enlever les traces du raid : + +``` +sudo mdadm --zero-superblock /dev/sdx +``` + +## Exercice 1 + +Tuto parfait : https://ruan.dev/blog/2022/06/29/create-a-raid5-array-with-mdadm-on-linux + +``` +sudo apt install mdadm -y + +lsblk +> sde, sdg, sdh + +fdisk /dev/sdx + n # ajouter une -n-ouvelle partition + p # partition -p-rimaire + 1 # index de la partition + [default] # bloc de début + [default] # bloc de fin + + t # modifier le -t-ype d'une partition + L # -l-iste tous les codes hexa + fd # RAID Linux auto + + w # écrire (-w-rite) la table sur le disque et quitter + +sudo mdadm --create /dev/md127 --level=5 --raid-devices=3 /dev/sde1 /dev/sdg1 /dev/sdh1 + +mkfs.ext4 /dev/md127 + +sudo mount /dev/md127 /mnt +``` + +Eteindre, ajouter un disque, étendre la partition +``` +lsblk +> sdh + +fdisk /dev/sdh + n + p + 1 + [default] + [default] + + t + fd + + w + +sudo mdadm --add /dev/md127 /dev/sdh1 + +sudo mdadm --detail /dev/md127 +> Active Devices : 3 +> Working Devices : 4 +> Spare Devices : 1 + +sudo mdadm --add /dev/md127 --raid-devices=4 + +sudo mdadm --detail /dev/md127 +> Active Devices : 4 +> Working Devices : 4 +> Spare Devices : 0 + +sudo e2fsck -f /dev/md127 + +sudo resize2fs /dev/md127 + +sudo mount /dev/md127 /mnt/sauvegarde + +df -h /mnt/sauvegarde +> Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur +> /dev/md127 3,0G 28K 2,8G 1% /mnt/sauvegarde +``` + +## Cours 2 + +### LVM + +Créer volume LVM depuis disque physique + +``` +pvcreate /DEVICE1 /DEVICE2 /DEVICE3 + +# Intégrer ces volumes à un groupe de volume +vgcreate NOM_DU_VG /DEVICE1 /DEVICE2 + +# On découpe ces volumes +lvcreate -l TAILLE -n NOM_DU_LV NOM_DU_VG +``` + +VG et LV peuvent être accessibles par plusieurs chemins + +`/dev/mapper/` + +Identifier LV ou VG + +``` +# Identifier LV ou VG +sudo lvdisplay vgdisplay + +sudo lvremove + +sudo +``` + +Etendre VG + +``` +sudo vgdisplay + +sudo vgextend NOM_DU_VG/PV_SUPPLEMENTAIRE + +# Pour tester + +``` + +Identifier le LV à étendre + +``` +sudo lvdisplay + +sudo lvextend MON_VG/NOM_DU_LV /PV_SUPPLEMENTAIRE + +# Option pour donner une taille délimitée +sudo lvextend -L +00M +``` + +Il faut redimensionner à chaud après l'extension avec `--resizefs` à chaud, toucher à un LV ne change pas la taille du système de fichiers. + +Réduire un VG + +``` +sudo vgdisplay + +sudo +``` + +## Exercice 2 + +### Partie 1 + +A créer, avec chacun deux disques : +``` +Nom MD Taille Type FS Nom VL1-nom VL1-taille VL1-mnt VL2-nom VL2-taille VL2-mnt +------------------------------------------------------------------------------------------------------ +/dev/md123 2GO RAID1 btrfs "Production" "Current" 50% /mnt/prod/Current - - - +/dev/md124 2GO RAID1 XFS "Sauvegarde" "Current" 100% /mnt/sauv/current - - - +/dev/md125 2GO RAID1 EXT4 "Développement" "x86_64" 60% /mnt/dev/x86_64 "ARM" 40% /mnt/dev/arm +/dev/md126 2GO RAID1 EXT4 "Laboratoire" "Current" 100% /mnt/labo/current - - +``` + +Maintenant on colle les ressources. + +Pour attribuer des % de taille aux LV : +`sudo lvcreate -l 100%FREE # Toute la place restante` +`sudo lvcreate -l 50%VG # 50% de la taille totale du VG` +`sudo lvcreate -l 30%FREE # 30% de la place restante ACTUELLE` + +- +``` +sudo mdadm --create /dev/md12x --level=1/0 --raid-devices=2 /dev/sdx1 /dev/sdy1 + +sudo pvcreate /dev/md123 +sudo vgcreate Production /dev/md123 +sudo lvcreate -l 50%VG -n Current Production + +sudo pvcreate /dev/md124 +sudo vgcreate Sauvegarde /dev/md124 +sudo lvcreate -l 100%VG -n Current Sauvegarde + +sudo pvcreate /dev/md125 +sudo vgcreate Developpement /dev/md125 +sudo lvcreate -l 60%VG -n x86_64 Developpement +sudo lvcreate -l 100%FREE -n ARM Developpement + +sudo pvcreate /dev/md126 +sudo vgcreate Laboratoire /dev/md126 +sudo lvcreate -l 100%VG -n Current Laboratoire + +sudo lvs -o lv_name,vg_name,lv_size,attr + +sudo mkfs.btrfs /dev/mapper/Production-Current +sudo mkfs.xfs /dev/mapper/Sauvegarde-Current +sudo mkfs.ext4 /dev/mapper/Developpement-x86_64 +sudo mkfs.ext4 /dev/mapper/Developpement-ARM +sudo mkfs.ext4 /dev/mapper/Laboratoire-Current + +sudo mount /dev/mapper/Production-Current /mnt/prod/current +sudo mount /dev/mapper/Sauvegarde-Current /mnt/sauv/current +sudo mount /dev/mapper/Developpement-x86_64 /mnt/dev/x86_64 +sudo mount /dev/mapper/Developpement-ARM /mnt/dev/arm +sudo mount /dev/mapper/Laboratoire-Current /mnt/labo/current +``` + +### Partie 2 + +``` +sudo mdadm --manage /dev/md123 --fail /dev/sdh + +sudo mdadm --manage /dev/md123 --remove /dev/sdh + +sgdisk -Z /dev/sdi +sgdisk -n1:0:0 -t1:fd00 /dev/sdi + +mdadm --manage /dev/md123 --add /dev/sdq +``` + +### Partie 3 + +``` +sudo mdadm --add /dev/md126 /dev/sdi + +sudo mdadm --grow /dev/md126 --raid-devices=3 + +sudo pvresize /dev/md126 + +sudo lvextend -l +100%FREE /dev/mapper/Laboratoire-Current + +sudo resize2fs /dev/mapper/Laboratoire-Current +``` + +### Partie 4 + +``` +sudo mdadm --add /dev/md123 /dev/sdj +``` \ No newline at end of file