Renaming of files to reflect that Day 1 wes not about any note-taking

This commit is contained in:
gauvainboiche
2025-10-23 16:48:11 +02:00
parent bfb16740ba
commit 82296573fa
10 changed files with 417 additions and 410 deletions

View File

@@ -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 ###
```