|NO.Z.00024|——————————|^^^^ 部署 ^^^^|——|OpenStack&组件.V02|——|OpenStack-Cinder块存储|配置block.V2|
一、安装并配置block1节点(在openstack-block1下配置)
### --- 安装并配置block1节点(在openstack-block1下配置)
~~~ 配置先决条件
~~~ 安装并配置块存储卷组件
~~~ 完成安装
二、配置环境检查
[root@block ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@block ~]# getenforce
Disabled
[root@block ~]# systemctl status NetworkManager.service
NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled)
Active: inactive (dead)
[root@block ~]# systemctl status firewall.service
firewall.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
[root@block ~]# ll /etc/yum.repos.d/
total 8
drwxr-xr-x. 2 root root 4096 Jan 9 02:14 back
-rw-r--r--. 1 root root 434 Jan 9 02:14 ftp.repo
[root@block ~]# cat /etc/hosts
192.168.222.5 controller.nice.com
192.168.222.6 network.nice.com
192.168.222.10 compute1.nice.com
192.168.222.20 block1.nice.com
[root@block1 ~]# hostname
block1.nice.com
### --- 配置时间同步服务器
[root@compute ~]# yum install -y ntpdate // 安装ntpdate工具;时间同步服务器的客户端
[root@block1 ~]# /sbin/ntpdate -u controller.nice.com // 配置客户端同步时间服务的地址
12 Jan 04:06:43 ntpdate[14453]: adjust time server 192.168.222.5 offset -0.000013 sec
[root@compute ~]# crontab -e // 每一分钟去同步时间,/dev/null是垃圾箱,可以无限制的丢进数据,而不被保存
*/1 * * * * /sbin/ntpdate -u controller.nice.com &> /dev/null
三、配置先决条件(在openstack-block节点下配置)
### --- 添加一个新的硬盘(如:sdb),并分将全部空间分成一个主分区
~~~ 开机之前添加一块200G的磁盘
[root@block1 ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
### --- 配置网卡信息:
IP address:192.168.100.21
Network mask:255.255.255.0(or/24)
Default gateway:192.168.100.1
### --- 设置主机名为block1.nice.com并添加对应的DNS记录,设置NTP服务
### --- 安装LVM软件包(根据自身情况)
[root@block1 ~]# yum install lvm2
### --- 启动LVM服务并设置开机自动启动(根据自身情况)
[root@block1 ~]# systemctl enable lvm2-lvmetad.service
ln -s '/usr/lib/systemd/system/lvm2-lvmetad.service' '/etc/systemd/system/sysinit.target.wants/lvm2-lvmetad.service'
[root@block1 ~]# systemctl start lvm2-lvmetad.service
[root@block1 ~]# systemctl status lvm2-lvmetad.service
### --- 创建物理卷/dev/sdb:
[root@block1 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
### --- 创建卷组cinder-volumes(名字不要改):
[root@block1 ~]# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
### --- 编辑/etc/lvm/lvm.conf文件,使系统只扫描LVM的磁盘,
~~~ 防止识别其他非LVM磁盘对块存储服务造成影响。
[root@block1 ~]# vim /etc/lvm/lvm.conf
# 编辑devices小节,添加过滤器允许/dev/sdb磁盘,拒绝其他设备
devices{
......
filter=["a/sdb/","r/.*/"] # 此行未设置
# 警告:如果你的系统磁盘使用了LVM,则必须添加系统盘到过滤器中:
filter = [ "a/.*/" ] # 这一行下添加,这一行配置是系统默认的,不需要配置
filter = [ "a/sda", "a/sdb/", "r/.*/"] # 添加这一行即可,因为此环境系统就是LVM,所以把sda、sdb都给释放了
# 同样:如果conpute节点的系统盘也使用了LVM,则也需要修改/etc/lvm/lvm.conf文件,并添加过滤器
filter=["a/sdb/","r/.*/"] # 此行未设置
四、安装并配置块存储卷组件
### --- 安装并配置块存储卷组件
~~~ 块存储的数据安全性是非常高的,生产环境不会这样部署,
~~~ 一般会购买特定的块存储设备或者云存储主机,把存储环境挂载到/data或者其它目录,
~~~ 然后在该目录下创建一个web和一个mysql目录供Apache和MySQL使用。
~~~ 这个快挂载到/data目录下后,建议使用lvm卷的形式去使用,防止后期盘不够的情况下,
~~~ 进行扩容。
~~~ 一般的块存储是不支持扩容的,AWS是支持扩容的,生产环境确认明确
### --- 安装软件包:
~~~ openstack-cinder:
~~~ targetcli:
~~~ python-oslo-db: iscsi服务
~~~ MySQL-python:MySQL的Python连接服务
[root@block1 ~]# yum install openstack-cinder targetcli python-oslo-db MySQL-python
Install 4 Packages (+94 Dependent packages)
Total download size: 48 M
Installed size: 193 M
Is this ok [y/d/N]: y
Installed:
MySQL-python.x86_64 0:1.2.3-11.el7 openstack-cinder.noarch 0:2014.2-1.el7.centos python-oslo-db.noarch 0:1.0.2-2.el7.centos targetcli.noarch 0:2.1.fb34-1.el7
Dependency Installed:
PyYAML.x86_64 0:3.10-11.el7 atlas.x86_64 0:3.10.1-7.el7 blas.x86_64 0:3.4.2-4.el7
crudini.noarch 0:0.4-1.el7 glusterfs-api.x86_64 0:3.4.0.59rhs-1.el7.centos glusterfs-libs.x86_64 0:3.4.0.59rhs-1.el7.centos
iscsi-initiator-utils.x86_64 0:6.2.0.873-21.el7 iscsi-initiator-utils-iscsiuio.x86_64 0:6.2.0.873-21.el7 lapack.x86_64 0:3.4.2-4.el7
libgfortran.x86_64 0:4.8.2-16.2.el7_0 libiscsi.x86_64 0:1.9.0-6.el7 libquadmath.x86_64 0:4.8.2-16.2.el7_0
libwebp.x86_64 0:0.3.0-3.el7 libxslt.x86_64 0:1.1.28-5.el7 libyaml.x86_64 0:0.1.4-10.el7
numpy.x86_64 1:1.7.1-10.el7 numpy-f2py.x86_64 1:1.7.1-10.el7 openstack-utils.noarch 0:2014.1-3.el7.centos.1
pyOpenSSL.x86_64 0:0.13.1-3.el7 pyparsing.noarch 0:2.0.1-3.el7.centos python-alembic.noarch 0:0.6.5-3.el7.centos
python-amqp.noarch 0:1.4.5-1.el7 python-amqplib.noarch 0:1.0.2-7.el7 python-anyjson.noarch 0:0.3.3-3.el7
python-babel.noarch 0:1.3-6.el7.centos python-beaker.noarch 0:1.5.4-10.el7 python-cheetah.x86_64 0:2.4.4-5.el7.centos
python-cinder.noarch 0:2014.2-1.el7.centos python-cinderclient.noarch 0:1.1.1-1.el7.centos python-configshell.noarch 1:1.1.fb11-3.el7
python-crypto.x86_64 0:2.6.1-1.el7.centos python-devel.x86_64 0:2.7.5-16.el7 python-ecdsa.noarch 0:0.11-3.el7.centos
python-ethtool.x86_64 0:0.8-5.el7 python-eventlet.noarch 0:0.15.2-1.el7 python-futures.noarch 0:2.1.6-1.el7
python-glanceclient.noarch 1:0.14.1-1.el7.centos python-greenlet.x86_64 0:0.4.2-3.el7 python-httplib2.noarch 0:0.7.7-3.el7
python-iso8601.noarch 0:0.1.10-1.el7 python-jsonpatch.noarch 0:1.2-3.el7.centos python-jsonpointer.noarch 0:1.0-2.el7.centos
python-jsonschema.noarch 0:2.3.0-1.el7 python-keyring.noarch 0:4.0-1.el7 python-keystoneclient.noarch 1:0.11.1-1.el7.centos
python-kmod.x86_64 0:0.9-4.el7 python-kombu.noarch 0:2.5.16-1.el7 python-lockfile.noarch 1:0.9.1-4.el7
python-lxml.x86_64 0:3.2.1-4.el7 python-mako.noarch 0:0.8.1-2.el7 python-markdown.noarch 0:2.4.1-1.el7.centos
python-markupsafe.x86_64 0:0.11-10.el7 python-migrate.noarch 0:0.9.1-1.el7.centos python-netaddr.noarch 0:0.7.12-1.el7.centos
python-networkx-core.noarch 0:1.8.1-12.el7 python-nose.noarch 0:1.3.0-2.el7 python-novaclient.noarch 1:2.20.0-1.el7.centos
python-oslo-config.noarch 2:1.4.0-1.el7.centos python-oslo-i18n.noarch 0:1.0.0-1.el7.centos python-oslo-messaging.noarch 0:1.4.0.0-4.el7.centos
python-oslo-rootwrap.noarch 0:1.3.0.0-1.el7.centos python-oslo-utils.noarch 0:1.0.0-1.el7.centos python-osprofiler.noarch 0:0.3.0-1.el7.centos
python-paramiko.noarch 0:1.12.4-1.el7.centos python-paste.noarch 0:1.7.5.1-9.20111221hg1498.el7 python-paste-deploy.noarch 0:1.5.0-10.el7
python-pillow.x86_64 0:2.0.0-17.gitd1c6db8.el7 python-prettytable.noarch 0:0.7.2-2.el7.centos python-pygments.noarch 0:1.4-9.el7
python-qpid.noarch 0:0.28-4.el7 python-qpid-common.noarch 0:0.28-4.el7 python-repoze-lru.noarch 0:0.4-3.el7
python-requests.noarch 0:2.3.0-3.el7.centos python-routes.noarch 0:1.13-2.el7 python-rtslib.noarch 0:2.1.fb46-1.el7
python-simplejson.x86_64 0:3.3.3-1.el7 python-six.noarch 0:1.7.3-1.el7.centos python-sqlalchemy.x86_64 0:0.9.7-3.el7
python-stevedore.noarch 0:1.0.0-1.el7.centos python-suds.noarch 0:0.4.1-5.el7 python-swiftclient.noarch 0:2.3.1-2.el7.centos
python-taskflow.noarch 0:0.3.21-1.el7 python-tempita.noarch 0:0.5.1-6.el7 python-urllib3.noarch 0:1.8.2-4.el7.centos
python-urwid.x86_64 0:1.1.1-3.el7 python-warlock.noarch 0:1.0.1-1.el7 python-webob.noarch 0:1.2.3-6.el7
pytz.noarch 0:2012d-5.el7 qemu-img.x86_64 10:1.5.3-60.el7_0.10 rsyslog-mmjsonparse.x86_64 0:7.4.7-7.el7_0
scipy.x86_64 0:0.12.1-3.el7 suitesparse.x86_64 0:4.0.2-10.el7 sysfsutils.x86_64 0:2.1.0-16.el7
tbb.x86_64 0:4.1-5.20130314.el7
Complete!
~~~ 4个程序包,98个依赖包
### --- 编辑/etc/cinder/cinder.conf文件并完成下列操作
[root@block1 ~]# vim /etc/cinder/cinder.conf
# 编辑[database]小节,配置数据库访问:
[database]
......
connection=mysql://cinder:CINDER_DBPASS@controller.nice.com/cinder
# 编辑[DEFAULT]小节,配置RabbitMQ消息代理访问:
[DEFAULT]
......
rpc_backend=rabbit
rabbit_host=controller.nice.com
rabbit_password=guest
# 编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问:
[DEFAULT]
......
auth_strategy=keystone
[keystone_authtoken]
......
auth_uri=http://controller.nice.com:5000/v2.0 # 访问端点
identity_uri=http://controller.nice.com:35357 # 公共访问端点
admin_tenant_name=service # 用户名称
admin_user=cinder # 管理员用户名
admin_password=CINDER_PASS # 管理员的密码
# 编辑[DEFAULT]小节,配置my_ip选项:
[DEFAULT]
......
my_ip=192.168.222.20 # 当前主机的地址
# 编辑[DEFAULT]小节,配置镜像服务器位置: # glance是通过块存储存储镜像的,
[DEFAULT]
......
glance_host=controller.nice.com # glance服务是部署在controller.nice.com节点上
# 编辑[DEFAULT]小节,配置块存储服务使用lioadm iSCSI服务
[DEFAULT]
......
iscsi_helper=lioadm # iscsi的工作方式
# (可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
......
verbose=True
五、完成安装
### --- 启动块存储volume服务和iSCSI服务,并设置开机自动启动。
[root@block1 ~]# systemctl enable openstack-cinder-volume.service target.service
ln -s '/usr/lib/systemd/system/openstack-cinder-volume.service' '/etc/systemd/system/multi-user.target.wants/openstack-cinder-volume.service'
ln -s '/usr/lib/systemd/system/target.service' '/etc/systemd/system/multi-user.target.wants/target.service'
[root@block1 ~]# systemctl start openstack-cinder-volume.service target.service
[root@block1 ~]# systemctl status openstack-cinder-volume.service target.service
六、验证(在openstack-controller节点完成下列操作)
### --- 执行admin环境变量脚本
[root@controller ~]# source admin-openrc.sh
### --- 列出服务组件确认每个进程启动成功
~~~ 若是cinder-volume为down状态,可能是时间同步服务器未设置,设置时间同步,并重启服务即可
[root@controller ~]# cinder service-list
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller.nice.com | nova | enabled | up | 2021-01-11T20:11:52.000000 | None |
| cinder-volume | block1.nice.com | nova | enabled | up | 2021-01-11T20:11:54.000000 | None |
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
### --- 执行demo用户环境变量脚本
[root@controller ~]# source demo-openrc.sh
### --- 创建1GB的卷
~~~ --display-name:名称为demo-volume1
~~~ 第二个1表示为1G,为1个G的块存储
[root@controller ~]# cinder create --display-name demo-volume1 1
+---------------------+--------------------------------------+
| Property | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| created_at | 2021-01-11T20:17:13.039011 |
| display_description | None |
| display_name | demo-volume1 |
| encrypted | False |
| id | cecefa8d-68dd-4610-a211-4bb4fa9542b0 |
| metadata | {} |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| volume_type | None |
+---------------------+--------------------------------------+
### --- 确认卷创建并使用
~~~ 查看有没有创建成功,状态为available可用状态
[root@controller ~]# cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| cecefa8d-68dd-4610-a211-4bb4fa9542b0 | available | demo-volume1 | 1 | None | false | |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
附录一:报错分析
### --- 报错现象:
[root@block1 ~]# yum install openstack-cinder targetcli python-oslo-db MySQL-python
Error: Package: python-paramiko-2.1.1-4.el7.noarch (extras)
Requires: python2-pyasn1
Error: Package: python-paramiko-2.1.1-4.el7.noarch (extras)
Requires: python-cryptography
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
### --- 报错分析:
~~~ 缺少依赖包;官网找到对应依赖包放到特定位置
### --- 解决方案:
[root@block1 ~]# yum clean all
[root@block1 ~]# yum makecache
[root@block1 ~]# yum install openstack-cinder targetcli python-oslo-db MySQL-python
附录二:报错分析
### --- 报错现象:
~~~ 重新执行安装命令,显示OK
[root@controller ~]# cinder service-list
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller.nice.com | nova | enabled | up | 2021-01-11T20:11:52.000000 | None |
| cinder-volume | block1.nice.com | nova | enabled | down | 2021-01-11T20:11:54.000000 | None |
+------------------+---------------------+------+---------+-------+----------------------------+-----------------+
### --- 报错分析:
~~~ 时间同步服务器未配置
### --- 解决方案:
~~~ 配置时间同步服务器
~~~ 发现状态正常
[root@compute ~]# yum install -y ntpdate // 安装ntpdate工具;时间同步服务器的客户端
[root@block1 ~]# /sbin/ntpdate -u controller.nice.com // 配置客户端同步时间服务的地址
12 Jan 04:06:43 ntpdate[14453]: adjust time server 192.168.222.5 offset -0.000013 sec
[root@compute ~]# crontab -e // 每一分钟去同步时间,/dev/null是垃圾箱,可以无限制的丢进数据,而不被保存
*/1 * * * * /sbin/ntpdate -u controller.nice.com &> /dev/null
[root@block1 ~]# systemctl start openstack-cinder-volume.service target.service //重启服务
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv012-openstack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」