天天看點

OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化

标簽(空測試用例格分隔):OpenStack Train 系列

一:系統安裝環境說明

1.1 安裝說明與介紹:

1.1.1 Openstack 介紹

Openstack是一個雲平台管理的項目,它不是一個軟體。這個項目由幾個主要的元件組合起來完成一些具體的工作。

Openstack是一個旨在為公共及私有雲的建設與管理提供軟體的開源項目。它的社群擁有超過130家企業及1350位開發者,

這些機構與個人将 Openstack作為基礎設施即服務資源的通用前端。Openstack項目的首要任務是簡化雲的部署過程并為其帶來良好的可擴充性。本文希望通過提供必要的指導資訊,
幫助大家利用 Openstack前端來設定及管理自己的公共雲或私有雲。

OpenStack 是一系列開源工具(或開源項目)的組合,主要使用池化虛拟資源來建構和管理私有雲及公共雲。其中的六個項目主要負責處理核心雲計算服務,包括計算、網絡、存儲、身份和鏡像服務。

還有另外十多個可選項目,使用者可把它們捆綁打包,用來建立獨特、可部署的雲架構。


openstack 官網:

https://docs.openstack.org/
           

1.1.2 OpenStack 的常用包含元件

OpenStack 架構由大量開源項目組成。其中包含 6 個穩定可靠的核心服務,用于處理計算、網絡、存儲、身份和鏡像; 同時,還為使用者提供了十多種開發成熟度各異的可選服務。OpenStack 的 6 個核心服務主要擔綱系統的基礎架構,其餘項目則負責管理控制台、編排、裸機部署、資訊傳遞、容器及統籌管理等操作。

keystone:Keystone 認證所有 OpenStack 服務并對其進行授權。同時,它也是所有服務的端點目錄。
glance:Glance 可存儲和檢索多個位置的虛拟機磁盤鏡像。
nova:是一個完整的 OpenStack 計算資源管理和通路工具,負責處理規劃、建立和删除操作。
neutron:Neutron 能夠連接配接其他 OpenStack 服務并連接配接網絡。
dashboard:web管理界面
Swift: 是一種高度容錯的對象存儲服務,使用 RESTful API 來存儲和檢索非結構資料對象。
Cinder 通過自助服務 API 通路持久塊存儲。
Ceilometer:計費
Heat:編排
           

1.1.3 OpenStack 體系涉及架構

OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化

1.1.4 openstack 元件互動架構

OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化

1.2 Openstack Train 實驗部署說明

1.2.1 實驗環境

因為沒有實體的伺服器是以環境以虛拟機的形式展現

1. 主控端配置系統
  
  windows11x64 / 16core / 128G / 6TB SSD
  
2. 虛拟軟體: vmware workstation 16 pro  

3. 虛機作業系統: CentOS 7.9x64 
   
4. OpenStack 版本:Train  

5. ceph 存儲版本: 14.2.22(Nautilus)

           

1.2.2 環境 虛機配置如下

OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
安裝方式可以采用虛機方式先一台虛機模闆然後克隆,
産線機房可以采用PXE,kickstart,cobbler 批量安裝系統,系統安裝在此不做示範。
           

1.2.3 系統初始化

1.2.3.1 系統主機名配置

系統主機名:
# hostnamectl set-hostname xxxxx

所有主機配置:

# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

# openstack
172.16.10.11 controller
172.16.10.12 compute01
172.16.10.13 compute02

# cpeh-public
172.16.10.14 ceph01
172.16.10.15 ceph02
172.16.10.16 ceph03

# ceph-cluster
20.16.10.14 ceph01-cluster
20.16.10.15 ceph02-cluster
20.16.10.16 ceph03-cluster

# yum

172.16.10.17 yum.ops
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化

1.2.3.2 系統初始化

所有機器配置:

# 關閉 NetworkManager
 systemctl stop NetworkManager && systemctl disable NetworkManager
# 關閉firewalld 與 selinux 
 systemctl stop firewalld && systemctl disable firewalld
 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# 設定核心參數及檔案句柄等資源限制參數

# cat <<EOF >> /etc/sysctl.conf
## default 1
net.ipv4.tcp_syncookies = 1
## default 0
net.ipv4.tcp_tw_reuse = 1
## default 0
net.ipv4.tcp_tw_recycle = 1
## default 60
net.ipv4.tcp_fin_timeout = 30
## default 256
net.ipv4.tcp_max_syn_backlog = 4096
## default 32768 60999
net.ipv4.ip_local_port_range = 1024 65535
## default 129=8
net.core.somaxconn = 32768
EOF

# cat <<EOF >> /etc/security/limits.conf
* hard nofile 655360
* soft nofile 655360
* hard nproc 655360
* soft nproc 655360
* soft core 655360
* hard core 655360
EOF

# sed -i 's/4096/unlimited/g' /etc/security/limits.d/20-nproc.conf

# cat /etc/security/limits.d/20-nproc.conf

* soft nproc unlimited
root soft nproc unlimited

           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
tail -f /etc/security/limits.conf
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
cat /etc/security/limits.d/20-nproc.conf
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
設定 CPU 嵌套虛拟化,讓虛拟機中再支援虛拟化

cat /sys/module/kvm_intel/parameters/nested

/*
說明:如果是 N,表示未開啟。如果連/sys/module 目錄都沒有,說明主機沒有開啟虛拟化(vmware workstation 是主機建立時沒有勾選 intel VT-x/EPT
或 AMD-V/RVI)
*/

# cat <<EOF > /etc/modprobe.d/kvm-nested.conf
options kvm_intel nested=1 ept=0 unrestricted_guest=0
EOF

即時生效
# rmmod kvm_intel // 需要所有虛拟機是停止狀态才能執行解除安裝

# modprobe kvm-intel ept=0 unrestricted_guest=0

# cat /sys/module/kvm_intel/parameters/nested //開啟後狀态為 Y。 /*

說明:ept=0 用于關閉 Intel EPT 硬體輔助虛拟化,可有效解決 CPU 型号過舊,導緻建立雲主機故障的問題
*/

           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
所有機器設定這些完成之後重新開機系統

reboot
           

1.2.4 制作 本地yum 伺服器 機器

1.2.4.1 修改本地yum 源

上述機器使用yum.ops(172.16.10.17) 機器 
Login:
   172.16.10.17
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
使用阿裡雲的配置源
# cd /etc/yum.repos.d && mkdir backup && mv *.repo backup/
# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
# yum -y install centos-release-openstack-train
添加 ceph-nautilus 源
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64
enabled=1
gpgcheck=0
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=0
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=0
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化

1.2.4.2 安裝同步源的需要的依賴包

# yum -y install createrepo yum-utils httpd reposync
# systemctl enable httpd && systemctl start httpd
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化

1.2.4.3 制作鏡像源

mkdir -p /var/www/html/yumrepos

同步CentOS-Base.repo 阿裡雲軟體包到本地

如果隻想同步 CentOS-Base.repo 中指定塊[section]中的 rpm 包,可以指定名稱同步

# reposync -n --repoid=base --repoid=updates -p /var/www/html/yumrepos/
# reposync -n --repoid=ceph --repoid=ceph-noarch -p /var/www/html/yumrepos/
# reposync -n --repoid=centos-openstack-train -p /var/www/html/yumrepos/
# reposync -n --repoid=centos-qemu-ev -p /var/www/html/yumrepos/
# reposync -n --repoid=epel -p /var/www/html/yumrepos/
# reposync -n --repoid=centos-ceph-nautilus -p /var/www/html/yumrepos/
# reposync -n --repoid=extras -p /var/www/html/yumrepos/

将上面的源同步到本地:
制作本地源時間比較長,建議晚上同步
           
說明:以上倉庫必須同步到本地

此處再以 zabbix 離線源為例
安裝 zabbix-4.0 的 yum 源配置檔案
# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

安裝好 zabbix-release-4.0-2.el7.noarch.rpm 會在/etc/yum.repos.d/ 下生成 zabbix.repo 檔案

# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

隻同步[zabbix]塊中的 rpm 包到本地
# reposync -n --repoid=zabbix -p /var/www/html/yumrepos/


           

1.2.4.4 制作yum 源

使用 createrepo 指令建立本地 yum 源,即為存放于本地特定位置的衆多 rpm 包建立索引,描述各包所需依賴資訊,并形成中繼資料

進到 /var/www/html/yumrepos/ 目錄下的每一個目錄執行 createrepo . 指令

# cd /var/www/html/yumrepos/base

# createrepo .

定期更新:
# reposync -n --repoid=base -p /var/www/html/yumrepos/

# cd /var/www/html/yumrepos/base

# createrepo --update . // 或者使用指令 createrepo --update /var/www/html/yumrepos/base

按上述方法,将 openstack 所依賴的 rpm 包全部下載下傳到本地
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
私有yum 檔案
cd /etc/yum.repos.d/
vim openstack-public.repo
----
[base]

name=CentOS-$releasever - Base
baseurl=http://172.16.10.17/yumrepos/base/
gpgcheck=0
enabled=1

[epel]
name=CentOS-$releasever - Base
baseurl=http://172.16.10.17/yumrepos/base/
gpgcheck=0
enabled=1


[updates]
name=CentOS-$releasever - Updates
baseurl=http://172.16.10.17/yumrepos/updates/
gpgcheck=0
enabled=1

[extras]
name=CentOS-$releasever - Extras
baseurl=http://172.16.10.17/yumrepos/extras/
gpgcheck=0
enabled=1

[centos-openstack-train]
name=CentOS-7 - OpenStack train
baseurl=http://172.16.10.17/yumrepos/centos-openstack-train/
gpgcheck=0
enabled=1

[centos-qemu-ev]
name=CentOS-$releasever - QEMU EV
baseurl=http://172.16.10.17/yumrepos/centos-qemu-ev/
gpgcheck=0
enabled=1

[centos-ceph-nautilus]
name=CentOS-7 - Ceph Nautilus
baseurl=http://172.16.10.17/yumrepos/centos-ceph-nautilus/
gpgcheck=0
enabled=1


[centos-nfs-ganesha28]
name=CentOS-7 - NFS Ganesha 2.8
baseurl=http://172.16.10.17/yumrepos/centos-nfs-ganesha28/
gpgcheck=0
enabled=1


[ceph]

name=CentOS-7 - Ceph
baseurl=http://172.16.10.17/yumrepos/ceph/
gpgcheck=0
enabled=1


[ceph-noarch]
name=CentOS-7 - Ceph-noarch
baseurl=http://172.16.10.17/yumrepos/ceph-noarch/
gpgcheck=0
enabled=1
---

然後使用ansible 同步到所有節點上面

ansible nodesrvs -m copy -a "src=/etc/yum.repos.d/openstack-public.repo dest=/etc/yum.repos.d/" 

ansible nodesrvs -m command -a "yum clean all"
ansible nodesrvs -m command -a "yum makecache fast"
           
主機rpm 包的更新
yum update -y

報錯:
   --> 正在處理依賴關系 sip(x86-64) = 4.19-1.el7,它被軟體包 sip-devel-4.19-1.el7.x86_64 需要
--> 解決依賴關系完成
錯誤:軟體包:PyQt4-devel-4.12-1.el7.x86_64 (centos-openstack-train)
          需要:PyQt4(x86-64) = 4.12-1.el7
          已安裝: PyQt4-4.10.1-13.el7.x86_64 (@anaconda)
              PyQt4(x86-64) = 4.10.1-13.el7
錯誤:軟體包:sip-devel-4.19-1.el7.x86_64 (centos-openstack-train)
          需要:sip(x86-64) = 4.19-1.el7
          已安裝: sip-4.14.6-4.el7.x86_64 (@anaconda)
              sip(x86-64) = 4.14.6-4.el7
 您可以嘗試添加 --skip-broken 選項來解決該問題
 
 yum remove PyQt4-4.10.1-13.el7.x86_64 sip-4.14.6-4.el7.x86_64 -y
 yum update -y 
安裝 OpenStack 用戶端
yum -y install python-openstackclient

從新啟動 伺服器 
reboot
           

二:主機環境初始化

2.1 主機硬體環境

2.1.1 主機節點增加網卡

ceph01/ceph02/ceph03 此處先不修改,等在後面安裝 ceph 時再根據規劃修改

按照規劃,為 compute01、compute02 添加硬碟50G的硬碟,controller、compute01、compute02 各增加 2 塊網卡,此處以 controller 截圖為例

vmware線上重新整理硬碟指令
echo "- - -" >> /sys/class/scsi_host/host0/scan
echo "- - -" >> /sys/class/scsi_host/host1/scan
echo "- - -" >> /sys/class/scsi_host/host2/scan


編輯 controller 虛拟機,添加 網絡擴充卡
           
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
OpenStack Train(一):系統環境實施準備一:系統安裝環境說明二:主機環境初始化
新增加的網卡為ens35 (隧道VXLAN網絡) 與 ens36(ceph 存儲網絡)
controller 主機:
 在 controller 節點上執行
# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens35
DEVICE=ens35
ONBOOT=yes
IPADDR=10.16.10.11
NETMASK=255.255.255.0
EOF

# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=20.16.10.11
NETMASK=255.255.255.0
EOF

# systemctl restart network


compter01 主機:
在 compute01 節點上執行
# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens35
DEVICE=ens35
ONBOOT=yes
IPADDR=10.16.10.12
NETMASK=255.255.255.0
EOF
# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=20.16.10.12
NETMASK=255.255.255.0
EOF
# systemctl restart network


compter02 主機:
在 compute02 節點上執行
# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens35
DEVICE=ens35
ONBOOT=yes
IPADDR=10.16.10.13
NETMASK=255.255.255.0
EOF
# cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV6INIT=no
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=20.16.10.13
NETMASK=255.255.255.0
EOF
# systemctl restart network

并且網絡必須是通暢

在 controller 節點上執行
ping 10.16.10.12
ping 10.16.10.13
ping 20.16.10.12
ping 20.16.10.13
           

2.1.2 添加計算節computer點硬碟

vmware線上重新整理硬碟指令
echo "- - -" >> /sys/class/scsi_host/host0/scan
echo "- - -" >> /sys/class/scsi_host/host1/scan
echo "- - -" >> /sys/class/scsi_host/host2/scan 
           

繼續閱讀