Calculer le déploiement de nova

Un, l'architecture du système Nova

Insérez la description de l'image ici
Contact externe

  • DB: base de données SQL pour le stockage des données
  • Réseau: composant de réseau nova qui gère le transfert IP, le pont ou le réseau local virtuel
  • Keystone: composant de l'authentification de sécurité
  • Glance & Cinder: le composant responsable de la gestion de l'image

Structure interne

  • API: composants Nova utilisés pour recevoir des requêtes HTTP, convertir des commandes et communiquer avec d'autres composants via des files d'attente de messages ou HTTP
  • Scheduler: planificateur nova utilisé pour déterminer quel nœud de calcul hébergera l'instance de calcul
  • Compute: composant nova computing qui gère la communication entre le gestionnaire de machine virtuelle et la machine virtuelle
  • Conducteur: gérer les demandes qui nécessitent une coordination (créer une machine virtuelle ou ajuster la taille de la machine virtuelle) ou gérer la conversion d'objet

Deux, configuration de l'environnement

Noeud de contrôle ct

CPU Virtualisation du processeur dual-core dual-thread activée
RAM 8G
disque dur 300G + 1024G (stockage de blocs CEPH)
Double carte réseau VM1- (réseau local) 192.168.86.11/NAT-192.168.109.12
système opérateur Centos 7.6 (1810) -Installation minimale

Noeud de contrôle c1

CPU Virtualisation du processeur dual-core dual-thread activée
RAM 8G
disque dur 300G + 1024G (stockage de blocs CEPH)
Double carte réseau VM1- (réseau local) 192.168.86.22 /NAT-192.168.109.22
système opérateur Centos 7.6 (1810) -Installation minimale

Noeud de contrôle c2

CPU Virtualisation du processeur dual-core dual-thread activée
RAM 8G
disque dur 300G + 1024G (stockage de blocs CEPH)
Double carte réseau VM1- (réseau local) 192.168.86.33 /NAT-192.168.109.32
système opérateur Centos 7.6 (1810) -Installation minimale

Trois, idées de déploiement

Noeud de contrôle ct

  • Nova-api (service principal nova)
  • Nova-Scheduler (service de planification nova)
  • Nova-condutor (service de base de données nova, fournissant un accès à la base de données)
  • Nova-novncproxy (service vnc de nova, fournissant une console d'instance)

Calculer les nœuds c1, c2

  • nova-compute (service de calcul nova)

Quatrièmement, l'opération de déploiement proprement dite

Noeud de contrôle ct

Créer une instance de base de données et une autorisation

mysql -uroot -p

CREATE DATABASE nova_api;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';

CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
flush privileges;
exit

Insérez la description de l'image ici

Créer des utilisateurs, modifier les fichiers de configuration

#创建nova用户;验证openstack user list
openstack user create --domain default --password NOVA_PASS nova

#向nova用户添加admin角色;验证openstack role assignment list验证,还要查role、user、project列表看id号
openstack role add --project service --user nova admin

#创建nova服务实体;验证openstack service list
openstack service create --name nova --description "OpenStack Compute" compute

Insérez la description de l'image ici

#创建 compute API 服务端点
openstack endpoint create --region RegionOne compute public http://ct:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://ct:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://ct:8774/v2.1

Insérez la description de l'image ici

Modifier le fichier de configuration

yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

#修改配置文件
cp -a /etc/nova/nova.conf{
    
    ,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf

Insérez la description de l'image ici

#添加/etc/nova/nova.conf配置
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.86.11    #本地内网IP
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:NOVA_DBPASS@ct/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:NOVA_DBPASS@ct/nova
openstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@ct/placement
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf glance api_servers http://ct:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS

cat /etc/nova/nova.conf      #太多了简单截个图

Insérez la description de l'image ici

Initialisez la base de données nova et générez la structure de table associée

su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
su -s /bin/sh -c "nova-manage db sync" nova

Insérez la description de l'image ici

#验证 nova cell0 和 cell1 是否正确注册
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

Insérez la description de l'image ici

Démarrer le service Nova

#启动 Nova 服务并配置开机启动
systemctl start openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

systemctl enable openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

Insérez la description de l'image ici

#检查nova服务是否启动
netstat -tnlup|egrep '8774|8775'
curl http://ct:8774

Insérez la description de l'image ici

Noeud de contrôle c1, c2

Modifier le fichier de configuration

yum -y install openstack-nova-compute

cp -a /etc/nova/nova.conf{
    
    ,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf

Insérez la description de l'image ici
Insérez la description de l'image ici

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.86.22     #注意区别c1\c2内网IP
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://ct:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://ct:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu

cat /etc/nova/nova.conf

Insérez la description de l'image ici
Insérez la description de l'image ici

Déterminer si l'ordinateur prend en charge l'accélération matérielle de la machine virtuelle

#前面环境部署已经改过这里再确认下
egrep -c '(vmx|svm)' /proc/cpuinfo

Si la valeur de retour de la commande ci-dessus n'est pas 0, le nœud de calcul prend en charge l'accélération matérielle et la configuration suivante n'est pas requise.
La valeur de retour de la commande ci-dessus est 0, le nœud de calcul ne prend pas en charge l'accélération matérielle et libvirt doit être configuré pour utiliser
QEMU au lieu de KVM. Vous devez modifier la partie [libvirt] du fichier /etc/nova/nova.conf fichier.
vim / etc / nova / nova .conf
[libvirt]
virt_type = qemu

Insérez la description de l'image ici

Démarrez le service informatique Nova et configurez le démarrage

systemctl start libvirtd.service openstack-nova-compute.service
systemctl enable libvirtd.service openstack-nova-compute.service

Insérez la description de l'image ici

Noeud de contrôle ct

Ajouter un nœud de calcul à la base de données de cellules

openstack compute service list --service nova-compute

Insérez la description de l'image ici

Découverte des nœuds de calcul

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#以后添加新的计算节点时,必须在控制器节点上运行 su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova 以注册这些新的计算节点。

Insérez la description de l'image ici

vim /etc/nova/nova.conf
[scheduler]
discover_hosts_in_cells_interval = 200

systemctl restart openstack-nova-api.service

Insérez la description de l'image ici
Insérez la description de l'image ici

Service informatique de vérification

#列出服务组件以验证每个进程的成功启动和注册情况
openstack compute service list

#列出身份服务中的API端点以验证与身份服务的连接
openstack catalog list

#列出图像服务中的图像以验证与图像服务的连接性
openstack image list

#检查Cells和placement API是否正常运行
nova-status upgrade check

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51616026/article/details/114998809
conseillé
Classement