|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 address192.168.100.21
Network mask255.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目录供ApacheMySQL使用。
~~~     这个快挂载到/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

 

 

posted on   yanqi_vip  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示