Guide de résolution pour OpenStack sur ARM64 : Corriger le manque d'espace disque lors du déploiement UOS

Lors du déploiement de systèmes d'exploitation comme UOS sur une architecture ARM64 avec OpenStack, une erreur fréquente de « espace disque insuffisant » peut survenir. Cela s'explique par le fait que le programme d'installatino ne détecte souvent que le petit disque temporaire du LiveCD. Pour contourner cette limitation, il est essentiel de recourir au service de stockage par blocs Cinder afin de prvoisionner un volume de capacité suffisante.

Étape 1 : Installation de Cinder et configuration de la base de données

Sur le nœud contrôleur, procédez à l'installation des paquets nécessaires.

dnf install -y openstack-cinder

Ensuite, configurez les privilèges de la base de données pour l'utilisateur cinder. Une mauvaise configuration ici peut entraîner une erreur 1045 de connexion MySQL.

-- Connexion à la base de données en tant que root
CREATE DATABASE IF NOT EXISTS cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'MonMotDePasseComplexe';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'10.0.0.10' IDENTIFIED BY 'MonMotDePasseComplexe';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'MonMotDePasseComplexe';
FLUSH PRIVILEGES;

Étape 2 : Configuration de l'authentification et des rôles Keystone

Une étape cruciale et souvent source d'erreurs (401, 503) est l'association correcte du service Cinder au projet de service dans Keystone.

# Création du service et des points d'accès (endpoints)
openstack service create --name cinder --description "Service de stockage bloc OpenStack" volumev3
openstack endpoint create --region RegionOne volumev3 public http://10.0.0.10:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://10.0.0.10:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://10.0.0.10:8776/v3/%\(project_id\)s

# Création de l'utilisateur et attribution du rôle dans le projet 'service'
openstack user create --domain default --password MotDePasseUtilisateur cinder
openstack role add --project service --user cinder admin

Étape 3 : Ajustement des fichiers de configuraton et synchronisation

Modifiez le fichier /etc/cinder/cinder.conf pour paramétrer la connexion à la base de données et l'authentification Keystone.

[database]
connection = mysql+pymysql://cinder:MonMotDePasseComplexe@10.0.0.10/cinder

[DEFAULT]
enabled_backends = lvm
storage_availability_zone = nova
default_availability_zone = nova

[keystone_authtoken]
www_authenticate_uri = http://10.0.0.10:5000
auth_url = http://10.0.0.10:5000
memcached_servers = 10.0.0.10:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = MotDePasseUtilisateur

Synchronisez ensuite la base de données et redémarrez les services pertinents.

su -s /bin/sh -c "cinder-manage db sync" cinder
systemctl restart openstack-cinder-api openstack-cinder-scheduler httpd memcached

Étape 4 : Préparation de l'image pour l'architecture ARM64

Pour garantir la compatibilité de l'image UOS avec l'environnement virtuel ARM64, notamment pour la détection des disques VirtIO, appliquez ces propriétés supplémentaires.

openstack image set \
  --property hw_firmware_type=uefi \
  --property hw_machine_type=virt \
  --property hw_scsi_model=virtio-scsi \
  --property hw_disk_bus=scsi \
  --property hw_video_model=virtio \
  "Image-UOS-Desktop-ARM64"

Étape finale : Création de l'instance à partir d'un volume

  1. Créer un volume : Depuis l'interface Horizon ou en ligne de commande, générez un volume de 100 Go en utilisant l'image UOS modifiée comme source.
  2. Lancer l'instance : Lors de la création de l'instance, sélectionnez « Boot from volume » et choisissez le volume de 100 Go précédemment créé.
  3. Vérification : En vous connectant via la console VNC, vous constaterez que le programme d'installation reconnaît maintenant le disque de 100 Go.

Les problèmes courants tels que les erreurs 401/503 indiquent généralement un défaut dans l'attribution du rôle Keystone à l'utilisateur Cinder. Une erreur 1045 pointe vers une configuration incorrecte des privilèges dans la base de données MySQL. Si le disque n'est pas visible dans la VM, vérifiez impérativement la propriété hw_disk_bus de l'image.

Étiquettes: openstack Cinder ARM64 UEFI LVM

Publié le 10 juin à 19h48