На основе программного обеспечения платформы облачной инфраструктуры [Guoji Beisheng] для создания частной облачной платформы Openstack (версия Xiandian V2.4).
На основе программного обеспечения платформы облачной инфраструктуры [Guoji Beisheng] для создания частной облачной платформы Openstack (версия Xiandian V2.4).

Создание платформы Xiandian IaaS (версия Xiandian V2.4) на основе программного обеспечения платформы облачной инфраструктуры [Guoji Beisheng]

Оглавление

1. Предварительная подготовка и планирование узлов.

  • Операционная система, построенная с использованием:CentOS-7-x86_64-DVD-1804.iso
  • Изображение, построенное с помощью:chinaskills_cloud_iaas.iso
  • Инструменты для использования удаленных подключений:xshell
  • Метод построения: для сборки используйте два сервера облачных вычислений Xidian, один из которых является управляющим узлом. Другой рассчитывается как узел.
  • узел Планирование сети

узел

IP-адрес интрасети

Внешний IP-адрес

controller

192.168.1.10

192.168.101.10

compute

192.168.1.20

192.168.101.20

Уведомление:Введите IP-адрес и настройте его в соответствии с реальной ситуацией в сети.

2. Базовая конфигурация и описание среды.

Узел управления облачными вычислениями IaaS

Облачные вычисления IaaS вычислительный узел

Служба сертификации безопасности Keystone

Сервис зеркал Glance

Служба компьютерного контроля Нова

Вычислительный сервис Nova Compute

Интерфейс управления приборной панелью

Сетевой сервис Neutron Server

Нейтронузел Сетевые службы

Служба контроля хранения огарка

Служба хранения томов Cinder

Служба обмена сообщениями Rabbit

База данных MySQL

Свифт-прокси-сервис

Сервис быстрого хранения

Услуги по оркестровке тепла

Служба мониторинга облакомера

Агент мониторинга облакомера

Обратитесь к предыдущим инструкциям блога по созданию версии Xiandian IaaS V2.2.

Примечание. При установке операционной системы необходимо разделить два пустых раздела на диски Cinder и Swift. FTP-сервер служит источником yum для создания облачной платформы.

3. Установите операционную систему centos7.5 и инструкции.

Обратитесь к предыдущему блогу о сборке версии Xidian v2.2: Установить CentOS7 Инструкции и этапы работы (на примере контроллерузел)

4. Настройте сеть и имя хоста (контроллер, компьютер).

проходитьxShellПодключение инструмента удаленного подключения【controller】узели【compute】узел,то есть контрольузели计算узел。 【controller】 Настройте информацию о сети. Измените соответствующую информацию о параметрах.

Язык кода:javascript
копировать
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp8s0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=enp8s0
DEVICE=enp8s0
ONBOOT=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp9s0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=enp9s0
DEVICE=enp9s0
ONBOOT=yes
IPADDR=192.168.101.10
NETMASK=255.255.255.0
GATEWAY=192.168.101.1
DNS1=192.168.101.1
[root@controller ~]# 

[root@controller ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0c:c4:7a:7c:6d:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute enp8s0
       valid_lft forever preferred_lft forever
    inet6 fe80::ec4:7aff:fe7c:6d16/64 scope link 
       valid_lft forever preferred_lft forever
3: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0c:c4:7a:7c:6d:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.101.10/24 brd 192.168.101.255 scope global noprefixroute enp9s0
       valid_lft forever preferred_lft forever
    inet6 fe80::ec4:7aff:fe7c:6d17/64 scope link 
       valid_lft forever preferred_lft forever
[root@controller ~]# 
[root@controller ~]# ping -c 5 www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=49 time=8.34 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=49 time=8.29 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=49 time=8.34 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=49 time=8.22 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=5 ttl=49 time=8.18 ms

--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 8.184/8.278/8.348/0.132 ms
[root@controller ~]# 

Настройте имя хоста, который управляет узлом

Язык кода:javascript
копировать
[root@controller ~]# hostnamectl set-hostname controller
[root@controller ~]# bash
[root@controller ~]# hostnamectl 
   Static hostname: controller
         Icon name: computer-desktop
           Chassis: desktop
        Machine ID: 03ea1deb7ce84827b40dcc0cad6deba0
           Boot ID: 73599f8a282c461bb30037e90d8f1702
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64
[root@controller ~]# 

【вычислить】 Измените имя хоста для расчета узла.

Язык кода:javascript
копировать
[root@localhost ~]# hostnamectl set-hostname compute
[root@localhost ~]# bash
[root@compute ~]# hostnamectl 
   Static hostname: compute
         Icon name: computer-desktop
           Chassis: desktop
        Machine ID: 91753e2724514eeeae458d545bba8b0d
           Boot ID: 1be1aa57d5e8436bba0ad7d1333e099f
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64
[root@compute ~]# 

Настройте сеть для вычислительного узла. и изменить соответствующую информацию.

Язык кода:javascript
копировать
[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp8s0 
[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp9s0 
[root@compute ~]# systemctl restart network
[root@compute ~]# cat  /etc/sysconfig/network-scripts/ifcfg-enp9s0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=enp9s0
DEVICE=enp9s0
ONBOOT=yes
IPADDR=192.168.101.20
NETMASK=255.255.255.0
GATEWAY=1921.68.101.1
DNS1=192.168.101.1
[root@compute ~]# cat  /etc/sysconfig/network-scripts/ifcfg-enp8s0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=enp8s0
DEVICE=enp8s0
ONBOOT=yes
IPADDR=192.168.1.20
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
[root@compute ~]# 

[root@compute ~]# ping -c 5 www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=49 time=10.3 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=49 time=9.77 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3 ttl=49 time=9.79 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=4 ttl=49 time=9.81 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=5 ttl=49 time=9.74 ms

--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 9.740/9.884/10.302/0.236 ms
[root@compute ~]# 

5. Загрузите образ и настройте локальный источник YUM (контроллер, компьютер).

【controller】

Настройте локальный источник YUM для [controllerузел]

Язык кода:javascript
копировать
[root@controller yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo
[root@controller yum.repos.d]# mkdir bak
[root@controller yum.repos.d]# mv CentOS-* bak/
[root@controller yum.repos.d]# ll
total 0
drwxr-xr-x. 2 root root 187 Nov  3 10:43 bak
[root@controller yum.repos.d]# mv bak /home/
[root@controller yum.repos.d]# ll
total 0
[root@controller ~]# vi /etc/yum.repos.d/local.repo 
[root@controller ~]# cat /etc/yum.repos.d/local.repo 
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[openstack]
name=openstack
baseurl=file:///opt/openstack/iaas-repo
gpgcheck=0
enabled=1
[root@controller ~]# 

Настройте локальный источник YUM [компьюзел] и используйте FTP для получения источника YUM контроллерузел.

Язык кода:javascript
копировать
[root@compute ~]# cd /etc/yum.repos.d/
[root@compute yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo
[root@compute yum.repos.d]# mkdir bak
[root@compute yum.repos.d]# mv CentOS-* bak/
[root@compute yum.repos.d]# ll
total 0
drwxr-xr-x. 2 root root 187 Nov  3 10:43 bak
[root@compute yum.repos.d]# mv bak /home/
[root@compute yum.repos.d]# ll
total 0
[root@compute yum.repos.d]# vi /etc/yum.repos.d/ftp.repo
[root@compute yum.repos.d]# cat /etc/yum.repos.d/ftp.repo
[centos]
name=centos
baseurl=ftp://192.168.1.10/centos
gpgcheck=0
enable=1
[openstack]
name=openstack
baseurl=ftp://192.168.1.10/openstack/iaas-repo
gpgcheck=0
enabled=1
[root@compute yum.repos.d]# 

под контролемузелиз/optОглавление Создано подcentosиopenstackОглавлениеиспользуется для крепленияcentosзеркалоиopenstackзеркало 【controller】

Язык кода:javascript
копировать
[root@controller ~]# cd /opt/
[root@controller opt]# ll
total 0
[root@controller opt]# mkdir centos
[root@controller opt]# mkdir openstack
[root@controller opt]# ll
total 0
drwxr-xr-x. 2 root root 6 Nov  3 10:50 centos
drwxr-xr-x. 2 root root 6 Nov  3 10:50 openstack
[root@controller opt]# 

6. Подключите локальный источник YUN.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# ll
total 8075368
-rw-------. 1 root root       1463 Nov  3 09:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 4470079488 Nov  3 11:04 CentOS-7-x86_64-DVD-1804.iso
-rw-r--r--. 1 root root 3799093248 Nov  3 11:01 chinaskills_cloud_iaas.iso
[root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/centos/
Язык кода:javascript
копировать
[root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# cp -rvf /mnt/* /opt/openstack/

Проверьте, установлено ли оно под указанным Оглавлением.

Язык кода:javascript
копировать
[root@controller ~]# cd /opt/
[root@controller opt]# ll
total 0
drwxr-xr-x. 8 root root 220 Nov  3 11:36 centos
drwxr-xr-x. 4 root root  37 Nov  3 11:39 openstack
[root@controller opt]# cd centos/
[root@controller centos]# ll
total 320
-rw-r--r--. 1 root root     14 Nov  3 11:35 CentOS_BuildTag
drwxr-xr-x. 3 root root     35 Nov  3 11:35 EFI
-rw-r--r--. 1 root root    227 Nov  3 11:35 EULA
-rw-r--r--. 1 root root  18009 Nov  3 11:35 GPL
drwxr-xr-x. 3 root root     57 Nov  3 11:35 images
drwxr-xr-x. 2 root root    198 Nov  3 11:35 isolinux
drwxr-xr-x. 2 root root     43 Nov  3 11:35 LiveOS
drwxr-xr-x. 2 root root 221184 Nov  3 11:36 Packages
drwxr-xr-x. 2 root root   4096 Nov  3 11:36 repodata
-rw-r--r--. 1 root root   1690 Nov  3 11:36 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root   1690 Nov  3 11:36 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 Nov  3 11:36 TRANS.TBL
[root@controller centos]# cd ..
[root@controller opt]# cd openstack/
[root@controller openstack]# ll
total 0
drwxr-xr-x. 4 root root  34 Nov  3 11:39 iaas-repo
drwxr-xr-x. 2 root root 132 Nov  3 11:39 images

【контроллер】 Проверьте, успешно ли настроен источник YUM.

Язык кода:javascript
копировать
[root@controller ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: centos openstack
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
[root@controller ~]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
centos                                                                                                          | 3.6 kB  00:00:00     
openstack                                                                                                       | 2.9 kB  00:00:00     
(1/3): centos/group_gz                                                                                          | 166 kB  00:00:00     
(2/3): openstack/primary_db                                                                                     | 1.4 MB  00:00:00     
(3/3): centos/primary_db                                                                                        | 3.1 MB  00:00:00     
repo id                                                         repo name                                                        status
centos                                                          centos                                                           3,971
openstack                                                       openstack                                                        3,232
repolist: 7,203
[root@controller ~]# 

Установите ftp-сервис на контроллерузел

Язык кода:javascript
копировать
[root@controller ~]# yum install -y vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-22.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                       Arch                          Version                               Repository                     Size
=======================================================================================================================================
Installing:
 vsftpd                        x86_64                        3.0.2-22.el7                          centos                        169 k

Transaction Summary
=======================================================================================================================================
Install  1 Package

Total download size: 169 k
Installed size: 348 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : vsftpd-3.0.2-22.el7.x86_64                                                                                          1/1 
  Verifying  : vsftpd-3.0.2-22.el7.x86_64                                                                                          1/1 

Installed:
  vsftpd.x86_64 0:3.0.2-22.el7                                                                                                         

Complete!
[root@controller ~]# vi /etc/
Display all 175 possibilities? (y or n)
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf 
[root@controller ~]# systemctl start vsftpd;systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@controller ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-03 11:51:05 CST; 50s ago
 Main PID: 10038 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─10038 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Nov 03 11:51:05 controller systemd[1]: Starting Vsftpd ftp daemon...
Nov 03 11:51:05 controller systemd[1]: Started Vsftpd ftp daemon.
[root@controller ~]# 

【compute】

Язык кода:javascript
копировать
[root@compute ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: centos openstack
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@compute ~]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
centos                                                                                                          | 3.6 kB  00:00:00     
openstack                                                                                                       | 2.9 kB  00:00:00     
(1/3): centos/group_gz                                                                                          | 166 kB  00:00:00     
(2/3): openstack/primary_db                                                                                     | 1.4 MB  00:00:00     
(3/3): centos/primary_db                                                                                        | 3.1 MB  00:00:00     
repo id                                                         repo name                                                        status
centos                                                          centos                                                           3,971
openstack                                                       openstack                                                        3,232
repolist: 7,203
[root@compute ~]# 

7. Настройте разрешение доменного имени.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# vi /etc/hosts
[root@controller ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10	controller
192.168.1.20	compute
[root@controller ~]# 

【compute】

Язык кода:javascript
копировать
[root@compute ~]# vi /etc/hosts
[root@compute ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10	controller
192.168.1.20	compute
[root@compute ~]# 

8. Отключите брандмауэр и измените режим безопасности SELINUX.

【controller、compute】 Возьмем в качестве примера компьютерузел, просто проделайте ту же операцию с компьютеромузел. Отключите брандмауэр и настройте его так, чтобы он не запускался автоматически при загрузке.

Язык кода:javascript
копировать
[root@controller ~]# systemctl stop firewalld;systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@controller ~]# 

Изменить режим безопасности SELINUX (временная модификация, постоянная модификация) (准确из来说,permissive是允许放行проходить,То есть выдавать предупреждение ⚠ но не блокировать 🚫 отключено — отключить безопасный режим SELINUX;,Предупреждения безопасности не выдаются.,И это не прекращается. )

Язык кода:javascript
копировать
[root@controller ~]# setenforce 0 #Временно закрыть SELINUX
[root@controller ~]# getenforce # Запрос режима SELINUX
Permissive
[root@controller ~]# sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config 
[root@controller ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 


[root@controller ~]# 

Таким же образом компьюзел может выполнять те же операции, что и выше.

9. Разделите пустой раздел, хранилище Cinder и хранилище Swift на [вычислительном] узле.

Сначала выделите все дисковое пространство, а затем разбейте его.

Язык кода:javascript
копировать
[root@compute ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  1.7T  0 disk 
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0   32G  0 part [SWAP]
└─sda3   8:3    0    1T  0 part /
[root@compute ~]# fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sda: 1798.8 GB, 1798752436224 bytes, 3513188352 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x000915c2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    68134911    33554432   82  Linux swap / Solaris
/dev/sda3        68134912  2215618559  1073741824   83  Linux

Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
Selected partition 4
First sector (2215618560-3513188351, default 2215618560): 
Using default value 2215618560
Last sector, +sectors or +size{K,M,G} (2215618560-3513188351, default 3513188351): +500G
Partition 4 of type Linux and of size 500 GiB is set

Command (m for help): p

Disk /dev/sda: 1798.8 GB, 1798752436224 bytes, 3513188352 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x000915c2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    68134911    33554432   82  Linux swap / Solaris
/dev/sda3        68134912  2215618559  1073741824   83  Linux
/dev/sda4      2215618560  3264194559   524288000   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@compute ~]# partprobe /dev/sda
[root@compute ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  1.7T  0 disk 
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0   32G  0 part [SWAP]
├─sda3   8:3    0    1T  0 part /
└─sda4   8:4    0  500G  0 part 
[root@compute ~]# 

Затем введите диск sda4 и разбейте его. хранение шлака и быстрое хранение.

Язык кода:javascript
копировать
[root@compute ~]# fdisk /dev/sda4

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sda4: 500.0 GB, 500000882688 bytes, 976564224 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x5a385372

     Device Boot      Start         End      Blocks   Id  System
`/dev/sda4p1`            2048   419432447   209715200   83  Linux
`/dev/sda4p2`       419432448   838862847   209715200   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@compute ~]# partprobe /dev/sda

10. Редактирование переменных среды (контроллер, вычисления)

【controller、compute】

Язык кода:javascript
копировать
[root@controller ~]# yum install -y iaas-xiandian
[root@compute ~]# yum install -y iaas-xiandian
[root@compute ~]# yum install -y iaas-xiandian
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package iaas-xiandian.x86_64 0:2.4-2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                             Arch                         Version                        Repository                       Size
=======================================================================================================================================
Installing:
 iaas-xiandian                       x86_64                       2.4-2                          openstack                        19 k

Transaction Summary
=======================================================================================================================================
Install  1 Package

Total download size: 19 k
Installed size: 81 k
Downloading packages:
iaas-xiandian-2.4-2.x86_64.rpm                                                                                  |  19 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : iaas-xiandian-2.4-2.x86_64                                                                                          1/1 
  Verifying  : iaas-xiandian-2.4-2.x86_64                                                                                          1/1 

Installed:
  iaas-xiandian.x86_64 0:2.4-2                                                                                                         

Complete!
[root@compute ~]# 

Файл конфигурации openrc.sh выглядит следующим образом. 【контроллер】

Язык кода:javascript
копировать
[root@controller ~]# vi /etc/xiandian/openrc.sh 
[root@controller ~]# cat /etc/xiandian/openrc.sh 
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.1.10

#Controller HOST Password. example:000000 
HOST_PASS=000000

#Controller Server hostname. example:controller
HOST_NAME=controller

#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.1.20

#Compute HOST Password. example:000000 
HOST_PASS_NODE=000000

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute

#--------------------Chrony Config-------------------##
#Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.1.0/24

#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack

#Password for rabbit user .example:000000
RABBIT_PASS=000000

#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000

#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000

#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.1.10

#External Network Interface. example:eth1
INTERFACE_NAME=enp9s0

#External Network The Physical Adapter. example:provider
Physical_NAME=provider

#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=1

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200

#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000

#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000

#Cinder Block Disk. example:md126p3
BLOCK_DISK=sda4p1

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sda4p2

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.1.20

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000

#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000

#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000

#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000

#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000

#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000

#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000

#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000

#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000

#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000

#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000

#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
[root@controller ~]# 
Язык кода:javascript
копировать
[root@controller ~]# scp /etc/xiandian/openrc.sh 192.168.1.20:/etc/xiandian/openrc.sh
The authenticity of host '192.168.1.20 (192.168.1.20)' can't be established.
ECDSA key fingerprint is SHA256:Gwi9FGsddkAOsnxzxoJKmgLRFE+ZHKV8HhOfsupYapA.
ECDSA key fingerprint is MD5:e6:e9:42:34:5f:b9:57:7c:7c:db:02:60:3b:14:f3:ac.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.20' (ECDSA) to the list of known hosts.
root@192.168.1.20's password: 
openrc.sh                                                                                            100% 3812     1.5MB/s   00:00    
[root@controller ~]# 

【вычислить】 Измените файл конфигурации openrc.sh, переданный из элемента управления. Содержание модификации следующее.

Язык кода:javascript
копировать
#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.1.20

11. Выполните соответствующие сценарии для установки каждого компонента службы.

(1) Установка служб с помощью сценариев

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-pre-host.sh 
[root@controller ~]# reboot

【compute】

Язык кода:javascript
копировать
[root@compute ~]# iaas-pre-host.sh 
[root@compute ~]# reboot

(2) Установите службу базы данных с помощью сценария.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-mysql.sh 

【compute】

Язык кода:javascript
копировать
[root@compute ~]# yum -y install  MySQL-python

(3) Установите службу Keystone с помощью сценария.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-keystone.sh

(4) Установите службу Gloss с помощью скрипта.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-glance.sh

Загрузите изображение и используйте команду, чтобы проверить, успешна ли загрузка.

Язык кода:javascript
копировать
[root@controller ~]# cd /opt/openstack/images/
[root@controller images]# ll
total 1539152
-rw-r--r--. 1 root root 283181056 Nov  3 11:39 CentOS_6.5_x86_64_XD.qcow2
-rw-r--r--. 1 root root 381696512 Nov  3 11:39 CentOS7_1804.tar
-rw-r--r--. 1 root root 400752640 Nov  3 11:39 CentOS_7.2_x86_64_XD.qcow2
-rw-r--r--. 1 root root 510459904 Nov  3 11:39 CentOS_7.5_x86_64_XD.qcow2
[root@controller images]# source /etc/keystone/admin-openrc.sh 
[root@controller images]# glance image-create --name "centos7.5" --disk-format qcow2 --container-format bare --progress < CentOS_7.5_x86_64_XD.qcow2 
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 3d3e9c954351a4b6953fd156f0c29f5c     |
| container_format | bare                                 |
| created_at       | 2020-11-03T06:20:20Z                 |
| disk_format      | qcow2                                |
| id               | d0122867-8ac2-444b-9c9f-556ede05e9f4 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | centos7.5                            |
| owner            | 25e184cdfaf44d29b11d9b435293253f     |
| protected        | False                                |
| size             | 510459904                            |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2020-11-03T06:20:23Z                 |
| virtual_size     | None                                 |
| visibility       | shared                               |
+------------------+--------------------------------------+
[root@controller images]# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2 
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | ea197f4c679b8e1ce34c0aa70ae2a94a     |
| container_format | bare                                 |
| created_at       | 2020-11-03T06:20:40Z                 |
| disk_format      | qcow2                                |
| id               | 428e4940-fc03-484f-96e2-4b8d5310e372 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | centos7.2                            |
| owner            | 25e184cdfaf44d29b11d9b435293253f     |
| protected        | False                                |
| size             | 400752640                            |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2020-11-03T06:20:42Z                 |
| virtual_size     | None                                 |
| visibility       | shared                               |
+------------------+--------------------------------------+
[root@controller images]# glance image-create --name "centos6.5" --disk-format qcow2 --container-format bare --progress < CentOS_6.5_x86_64_XD.qcow2 
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 3e565ace16066679ea363dde5411ed25     |
| container_format | bare                                 |
| created_at       | 2020-11-03T06:20:58Z                 |
| disk_format      | qcow2                                |
| id               | 6a3333a2-0125-4654-bbb3-d9004ace3788 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | centos6.5                            |
| owner            | 25e184cdfaf44d29b11d9b435293253f     |
| protected        | False                                |
| size             | 283181056                            |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2020-11-03T06:21:44Z                 |
| virtual_size     | None                                 |
| visibility       | shared                               |
+------------------+--------------------------------------+
[root@controller images]# glance image-list
+--------------------------------------+-----------+
| ID                                   | Name      |
+--------------------------------------+-----------+
| 6a3333a2-0125-4654-bbb3-d9004ace3788 | centos6.5 |
| 428e4940-fc03-484f-96e2-4b8d5310e372 | centos7.2 |
| d0122867-8ac2-444b-9c9f-556ede05e9f4 | centos7.5 |
+--------------------------------------+-----------+
[root@controller images]# openstack image list
+--------------------------------------+-----------+--------+
| ID                                   | Name      | Status |
+--------------------------------------+-----------+--------+
| 6a3333a2-0125-4654-bbb3-d9004ace3788 | centos6.5 | active |
| 428e4940-fc03-484f-96e2-4b8d5310e372 | centos7.2 | active |
| d0122867-8ac2-444b-9c9f-556ede05e9f4 | centos7.5 | active |
+--------------------------------------+-----------+--------+
[root@controller images]# 

(5) Установите службу nova через скрипт.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-nova-controller.sh

【compute】

Язык кода:javascript
копировать
[root@compute ~]# iaas-install-nova-compute.sh 

(6) Установите нейтронный сервис через скрипт.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-neutron-controller.sh 

【compute】

Язык кода:javascript
копировать
[root@compute ~]# iaas-install-neutron-compute.sh 

Примечание. Если для сборки вы используете реальный сервер, выберите режим виртуальной локальной сети в качестве сетевого режима. Если вы используете виртуальную машину, выберите плоский режим в качестве сетевого режима;

(7) Установите службу информационной панели через скрипт.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-dashboard.sh

(8) Установите службу Cinder через скрипт.

【controler】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-cinder-controller.sh 

【compute】

Язык кода:javascript
копировать
[root@compute ~]# iaas-install-cinder-compute.sh 

(9) Установите сервис Swift через скрипт.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-swift-controller.sh

【compute】

Язык кода:javascript
копировать
[root@compute ~]# iaas-install-swift-compute.sh

(10) Установите службу отопления через скрипт.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-heat.sh 

(11) Установите службу Zun через скрипт.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-zun-controller.sh 

【compute】

Язык кода:javascript
копировать
[root@compute ~]# iaas-install-zun-compute.sh 

(12) Установите службу Ceilometer с помощью скрипта.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-ceilometer-controller.sh 

【compute】

Язык кода:javascript
копировать
[root@compute~]# iaas-install-ceilometer-compute.sh 

(13) Установите службу Aodh с помощью сценария.

【controller】

Язык кода:javascript
копировать
[root@controller ~]# iaas-install-aodh.sh 

12. Добавьте ресурсы узла управления на облачную платформу.

【контроллер】 Изменить openrc.sh Измените IP-адрес и имя хоста компьютерузел на IP-адрес и имя хоста контроллерузел.

В управляющем узле запустите iaas-install-nova-compute.sh В процессе выполнения вам необходимо подтвердить вход в контроллерузел и ввести пароль пользователя контроллерузелroot.

Изменить файл конфигурации openrc.sh

Язык кода:javascript
копировать
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.1.10

#Compute Node hostname. example:compute
HOST_NAME_NODE=controller
Язык кода:javascript
копировать
[root@controller ~]# iaas-install-nova-compute.sh
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-compute.service to /usr/lib/systemd/system/openstack-nova-compute.service.
Pseudo-terminal will not be allocated because stdin is not a terminal.
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ECDSA key fingerprint is SHA256:rX1rbCElY3mREAkrNRYC+yob0sFY+VyQAoUxPHPZucs.
ECDSA key fingerprint is MD5:18:11:82:84:98:8b:fd:3d:58:df:18:82:f7:a5:2e:50.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (ECDSA) to the list of known hosts.
root@192.168.1.10's password: 
+----+--------------+------------+------+---------+-------+----------------------------+
| ID | Binary       | Host       | Zone | Status  | State | Updated At                 |
+----+--------------+------------+------+---------+-------+----------------------------+
| 10 | nova-compute | compute    | nova | enabled | up    | 2020-11-03T07:34:09.000000 |
| 11 | nova-compute | controller | nova | enabled | up    | 2020-11-03T07:34:09.000000 |
+----+--------------+------------+------+---------+-------+----------------------------+
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting computes from cell 'cell1': b7e5c36e-d44d-4886-b756-7f37fe2bff2d
Checking host mapping for compute host 'controller': a35af4bb-d210-4e8e-a2eb-1ed65fd439d9
Creating host mapping for compute host 'controller': a35af4bb-d210-4e8e-a2eb-1ed65fd439d9
Found 1 unmapped computes in cell: b7e5c36e-d44d-4886-b756-7f37fe2bff2d

13. Авторизуйтесь в веб-интерфейсе.

Введите http://192.168.1.10/dasboard.

На этом построение IaaS завершено.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose