Renaming of files to reflect that Day 1 wes not about any note-taking
This commit is contained in:
7
Readme.md
Normal file
7
Readme.md
Normal file
@@ -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 ?
|
||||||
@@ -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"
|
|
||||||
```
|
|
||||||
@@ -1,161 +1,76 @@
|
|||||||
# Infra avancée
|
# L'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
|
|
||||||
```
|
|
||||||
|
|
||||||
## Exercice 1
|
## Exercice 1
|
||||||
|
|
||||||
https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86_64/alpine-xen-3.17.10-x86_64.iso
|
### Lancer une machine
|
||||||
|
|
||||||
```
|
`qemu-img create -f qcow2 'C:\Program Files\qemu\testVM.qcow2' 10G`
|
||||||
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.1.0-amd64-netinst.iso
|
|
||||||
|
|
||||||
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`
|
||||||
|
|
||||||
```
|
- -boot d : Boot sur le CD/ROM
|
||||||
sudo virt-install \
|
- -boot c : Boot sur le Disque Dur
|
||||||
--name test-vm \
|
- m XXXX : Alloue une mémoire RAM fixe
|
||||||
--os-variant=debiantesting \
|
- smp X : Alloue un nombre de coeurs virtuels fixe
|
||||||
--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"
|
|
||||||
```
|
|
||||||
|
|
||||||
`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
|
## Exercice 2
|
||||||
|
|
||||||
### Petit A
|
### Créer une VM
|
||||||
|
|
||||||
C'est installé.
|
Pour refaire une VM en CLI :
|
||||||
|
|
||||||
### Petit B
|
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo lxc-create -n ConteneurDebian -t download
|
vboxmanage createvm --basefolder="C:\_VMs\VirtualCreationCLI" --register --name "VirtualBoxCLI"
|
||||||
# debian, bullseye, amd64
|
|
||||||
|
|
||||||
sudo lxc-start ConteneurDebian
|
vboxmanage storagectl "VirtualBoxCLI" --name "sata-controller" --add sata --controller IntelAHCI --portcount 1 --bootable on
|
||||||
sudo lxc-attach ConteneurDebian
|
|
||||||
|
|
||||||
### In the container ###
|
vboxmanage storageattach "VirtualBoxCLI" --storagectl "sata-controller" --port 0 --device 0 --type hdd --medium ".\test_copy.vdi"
|
||||||
uname -a
|
|
||||||
|
|
||||||
> Linux ConteneurDebian 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64 GNU/Linux
|
vboxmanage modifyvm "VirtualBoxCLI" --memory 4096 --cpus 4
|
||||||
|
|
||||||
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
|
|
||||||
>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 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/
|
sudo tee /etc/dracut.conf.d/hyperv.conf >/dev/null <<'EOF'
|
||||||
> ConteneurDebian
|
add_drivers+=" hv_vmbus hv_storvsc hv_netvsc hv_utils "
|
||||||
> Test-Linux
|
hostonly="no"
|
||||||
|
EOF
|
||||||
|
|
||||||
sudo ls -glAiF /var/lib/lxc/ConteneurDebian
|
sudo dracut -f --kver "$(uname -r)"
|
||||||
> -rw-r----- root config
|
|
||||||
> drwxr-xr-x root rootfs/
|
|
||||||
|
|
||||||
sudo du -h -glAiF /var/lib/lxc/ConteneurDebian
|
ls -lh /boot/initramfs-$(uname -r).img ### pour confirmer
|
||||||
> ...
|
|
||||||
> 412M
|
|
||||||
|
|
||||||
sudo lxc-copy -n ConteneurDebian -N NewConteneur ### -N pour NewName
|
cat /etc/fstab
|
||||||
|
blkid
|
||||||
|
|
||||||
sudo ls -glAiF /var/lib/lxc/
|
sudo shutdown -h now
|
||||||
> ConteneurDebian
|
|
||||||
> NewConteneur
|
|
||||||
> Test-Linux
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 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
|
Export-VM -Name "HyperVCLI" -Path "C:\_VMs\HyperVCLI" -CaptureLiveState CaptureSavedState
|
||||||
|
|
||||||
### 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 ###
|
|
||||||
|
|
||||||
|
|
||||||
|
Import-VM -Name "NewHyperVCLI" -Path "C:\_VMs\HyperVCLI\{ID-de-ses-morts}.vmcx" -Copy -GenerateNewId -VirtualMachinePath "C:\_VMs\NewHyperVCLI" -VhdDestinationPath "C:\_VMs\NewHyperVCLI"
|
||||||
```
|
```
|
||||||
@@ -1,253 +1,161 @@
|
|||||||
# Infra avancée
|
# 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
|
# Avec interactivté
|
||||||
sudo resize2fs
|
sudo lxc-create -n NOM_CONTENEUR -t download
|
||||||
# Pour XFS
|
|
||||||
sudo xfs_growfs
|
# 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
|
# Démarrer
|
||||||
sudo mdadm --fail /dev/
|
sudo lxc-start -n NOM_CONTENEUR
|
||||||
# Le retirer
|
|
||||||
sudo mdadm --remove /dev/
|
# Entrer dans un conteneur
|
||||||
# Le rajouter
|
sudo lxc-attach -n NOM_CONTENEUR
|
||||||
sudo mdadm --add /dev/mdx /dev/sdx # AJout comme Hot-Spare
|
|
||||||
|
# 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
|
## 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
|
mv debian-13.1.0-amd64-netinst.iso debian.iso
|
||||||
> sde, sdg, sdh
|
|
||||||
|
|
||||||
fdisk /dev/sdx
|
sudo chmod 666 debian.iso
|
||||||
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
|
Ensuite
|
||||||
```
|
|
||||||
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
|
sudo virt-install \
|
||||||
|
--name test-vm \
|
||||||
# Intégrer ces volumes à un groupe de volume
|
--os-variant=debiantesting \
|
||||||
vgcreate NOM_DU_VG /DEVICE1 /DEVICE2
|
--ram 2048 \
|
||||||
|
--vcpus 2 \
|
||||||
# On découpe ces volumes
|
--location ./debian.iso \
|
||||||
lvcreate -l TAILLE -n NOM_DU_LV NOM_DU_VG
|
--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
|
`virsh attach-interface --type bridge --source enp0s3 --model virtio test-vm`
|
||||||
|
|
||||||
`/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
|
## Exercice 2
|
||||||
|
|
||||||
### Partie 1
|
### Petit A
|
||||||
|
|
||||||
A créer, avec chacun deux disques :
|
C'est installé.
|
||||||
```
|
|
||||||
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.
|
### Petit B
|
||||||
|
|
||||||
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 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
|
### In the container ###
|
||||||
sgdisk -n1:0:0 -t1:fd00 /dev/sdi
|
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 ###
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
253
Semaine_01/Jour_04.md
Normal file
253
Semaine_01/Jour_04.md
Normal file
@@ -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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user