1、OPENSTACK配置与管理项目式实训任务八 Cinder的手工安装与配置OPENSTACK配置与管理一任务前提环境:成功完成任务9中所有内容后开始本实验,或者从已完成任务9的镜像开始,继续完成本任务内容。二任务涉及节点:controller和compute三任务目标:1.完成Cinder基本组件的安装;2.完成Cinder数据库的创建以及授权;3.完成Cinder主配置文件的修改;4.完成Cinder安全与认证配置;5.完成Cinder用户、租户、角色以及服务端点的创建;6.完成Cinder逻辑卷创建。OPENSTACK配置与管理四任务步骤及其详解:(此处有视频:10-1Cinder的安装及
2、其配置)步骤一:在controller节点完成Cinder基本组件的安装通过yum命令安装controller节点Cinder服务所需要的依赖包,命令如下。rootcontroller#yum-y install openstack-cinder执行上述安装命令成功后,我们可以看到成功标志,如图1所示。图1 Cinder软件包安装完成的反馈结果OPENSTACK配置与管理步骤二:创建Cinder数据库并授权首先,用root用户登录MySQL数据库,命令如下。rootcontroller#mysql-uroot-p000000登陆后,我们首先创建Cinder数据库,命令如下。mysqlCREAT
3、E DATABASE cinder;看到提示Query OK,1 row affected(0.00 sec),表明数据库创建成功。接着创建MySQL的Cinder用户,并赋予其Cinder数据库的操作权限,命令如下。mysql GRANT ALL PRIVILEGES ON cinder.*TO cinderlocalhost IDENTIFIED BY 000000;mysql GRANT ALL PRIVILEGES ON cinder.*TO cinder%IDENTIFIED BY 000000;mysql exitOPENSTACK配置与管理上述SQL语句与创建Keystone数据
4、库的语句一致,请参考任务4中第四小节“任务步骤及其详解”的步骤二“创建Keystone数据库并授权”部分对创建数据库时SQL语句的说明,在此不做赘述。然后,我们需要为Cinder服务创建数据库表。与其他OpenStack组件一样,在创建数据库表之前,需要先修改Cinder配置文件中用于数据库连接的内容,命令如下。rootcontroller#openstack-config-set/etc/cinder/cinder.conf database connection mysql:/cinder:000000controller/cinder同样,我们也可以通过vi/vim编辑器,编辑/etc/
5、cinder/cinder.conf文件中database字段与数据库连接的内容,以达到相同效果,编辑时请注意语法格式。OPENSTACK配置与管理我们需要同步数据库,为Cinder服务创建数据库表,命令如下。rootcontroller#su-s/bin/sh-c cinder-manage db sync cinder与前面几个组件一样,我们也可以通过一条SQL命令来查看同步后创建的表,命令如下,结果如图2所示。rootcontroller#mysql-u root-p000000-e use cinder;show tables;图2查看数据库同步的反馈结果OPENSTACK配置与管理步
6、骤三:注册Cinder服务至Keystone服务器前面章节中我们介绍过,在OpenStack中,几乎所有的服务(包括Keystone服务)要想正常运行,都必须首先向Keystone服务器注册。每一个服务需要向Keystone注册以下两个方面的信息,即用户信息,服务(service)和端点(endpoint)信息。首先,我们注册Cinder用户信息,注册用户信息的目的是为了认证用户身份的,这在前面章节已经讲过。现在我们添加Cinder用户,并为用户设置密码,在本书实训过程中我们所有的密码统一使用000000,命令如下,结果如图3所示。rootcontroller#keystone user-cr
7、eate-name=cinder-pass=000000图3 创建Cinder用户的反馈结果OPENSTACK配置与管理本书所有的服务都创建在service租户下。因此,Cinder用户必须在service租户下具有admin权限。下面,再为Cinder用户在service租户下分配admin权限,命令如下。rootcontroller#keystone user-role-add-user=cinder-tenant=service-role=admin上述命令用法在第六章任务4步骤七中已经提到,在这里不在赘述。接下来,我们注册Cinder服务(service)和端点(endpoint)信息
8、,注册服务和端点的信息目的是为了确保用户能够顺利访问Cinder服务,并执行一系列与Cinder服务有关的操作,前面已经说过。这里需要注意的是,Cinder与其他服务不同,Cinder的服务和端点是两个版本并存的,所以,我们在进行Cinder服务和端点信息的注册操作时需要将两个版本的相关信息分别注册,命令如下,版本1即v1的结果如图4和5所示,版本2即v2的结果如图6和7所示。OPENSTACK配置与管理rootcontroller#keystone service-create-name=cinder-type=volume-description=OpenStack Block Stora
9、ge图4创建Cinder版本1服务的反馈结果rootcontroller#keystone endpoint-create -service-id=$(keystone service-list|awk/volume/print$2)-publicurl=http:/controller:8776/v1/%(tenant_id)s-internalurl=http:/controller:8776/v1/%(tenant_id)s-adminurl=http:/controller:8776/v1/%(tenant_id)s图5 创建Cinder版本1的endpoint的反馈结果(此处有视频:
10、10-2Cinder的安装及其配置)OPENSTACK配置与管理rootcontroller#keystone service-create-name=cinderv2-type=volumev2-description=OpenStack Block Storage v2图6创建Cinder版本2服务的反馈结果rootcontroller#keystone endpoint-create -service-id=$(keystone service-list|awk/volumev2/print$2)-publicurl=http:/controller:8776/v2/%(tenant_i
11、d)s-internalurl=http:/controller:8776/v2/%(tenant_id)s-adminurl=http:/controller:8776/v2/%(tenant_id)s图7 创建Cinder版本2的endpoint的反馈结果OPENSTACK配置与管理步骤四:配置Cinder使用消息队列服务消息队列我们仍然使用Qpid队列,可以通过如下命令配置controller节点及compute节点的Cinder的消息队列。rootcontroller#openstack-config-set/etc/cinder/cinder.conf DEFAULT rpc_bac
12、kend mon.rpc.impl_qpidrootcontroller#openstack-config-set/etc/cinder/cinder.conf DEFAULT qpid_hostname controller上述命令在第八章任务5步骤四中讲解过,这里不再赘述。OPENSTACK配置与管理步骤五:修改Cinder的配置文件与前面章节一样,完成 Cinder用户信息、服务和端点信息的注册后,为了能让Cinder服务顺利通过Keystone的认证,我们需要在配置文件/etc/cinder/cinder.conf中记录Keystone的认证信息,即在配置文件的keystone_aut
13、htoken字段中修改Keystone的相关身份认证信息,同时在DEFAULT字段中添加Keystone支持。命令如下。rootcontroller#openstack-config-set/etc/cinder/cinder.conf DEFAULT auth_strategy keystonerootcontroller#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_uri http:/controller:5000rootcontroller#openstack-config-set/etc/cin
14、der/cinder.conf keystone_authtoken auth_host controllerOPENSTACK配置与管理rootcontroller#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_protocol httprootcontroller#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_port 35357rootcontroller#openstack-config-set/etc/ci
15、nder/cinder.conf keystone_authtoken admin_user cinderrootcontroller#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken admin_tenant_name servicerootcontroller#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken admin_password 000000OPENSTACK配置与管理对于上述命令,我们也可以通过vi/vim直接编辑配置文件/et
16、c/cinder/cinder.conf,在相应的地方做上述内容的修改,以达到相同的效果。修改完成后使用grep命令过滤/etc/cinder/cinder.conf文件中的内容,来检查已完成的配置。命令和结果如下所示。rootcontroller#grep a-z,/etc/cinder/cinder.confDEFAULTauth_strategy=keystonerpc_backend=mon.rpc.impl_qpidqpid_hostname=controlleriscsi_helper=tgtadmOPENSTACK配置与管理BRCD_FABRIC_EXAMPLEdatabasec
17、onnection=mysql:/cinder:000000controller/cinderfc-zone-managerkeymgrkeystone_authtokenauth_uri=http:/controller:5000auth_host=controllerauth_protocol=httpauth_port=35357admin_user=cinderadmin_tenant_name=serviceadmin_password=000000matchmaker_redismatchmaker_ringsslOPENSTACK配置与管理步骤六:启动服务并将其加入开机自启在co
18、ntroller节点启动openstack-cinder-api和openstack-cinder-scheduler服务并设置为开机自动启动,命令如下。rootcontroller#service openstack-cinder-api startrootcontroller#service openstack-cinder-scheduler startrootcontroller#chkconfig openstack-cinder-api onrootcontroller#chkconfig openstack-cinder-scheduler onOPENSTACK配置与管理步骤七
19、:在compute节点安装Cinder软件包通过yum命令安装compute节点Cinder服务所需要的依赖包,命令如下。(此处有视频:10-3Cinder的安装及其配置)rootcompute#yum-y install openstack-cinder scsi-target-utils openstack-utilsOPENSTACK配置与管理步骤八:创建LVM物理卷和cinder-volumes卷组将事先创建好的分区初始化为LVM物理卷,本书采用的是sda2分区,命令如下。rootcompute#pvcreate/dev/sda2使用vgcreate命令创建cinder-volumes
20、卷组,命令如下。rootcompute#vgcreate cinder-volumes/dev/sda2OPENSTACK配置与管理步骤九:在compute节点修改Cinder配置文件我们可以通过openstack-config命令配置Cinder与数据库的连接,命令如下。rootcompute#openstack-config-set/etc/cinder/cinder.conf database connection mysql:/cinder:000000controller/cinder修改DEFAULT段落和keystone_authtoken段落中Keystone相关认证信息命令如
21、下。rootcompute#openstack-config-set/etc/cinder/cinder.conf DEFAULT auth_strategy keystonerootcompute#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_uri http:/controller:5000rootcompute#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_host controllerOPENSTACK配置与
22、管理rootcompute#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_protocol httprootcompute#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken auth_port 35357rootcompute#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken admin_user cinderrootcompute#openstack-c
23、onfig-set/etc/cinder/cinder.conf keystone_authtoken admin_tenant_name servicerootcompute#openstack-config-set/etc/cinder/cinder.conf keystone_authtoken admin_password 000000OPENSTACK配置与管理在DEFAULT段落中修改消息队列服务相关信息,命令如下。root compute#openstack-config-set/etc/cinder/cinder.conf DEFAULT rpc_backend mon.rpc
24、.impl_qpidrootcompute#openstack-config-set/etc/cinder/cinder.conf DEFAULT qpid_hostname controller在DEFAULT段落中修改glance服务的主机名为controller节点,命令如下。rootcompute#openstack-config-set/etc/cinder/cinder.conf DEFAULT glance_host controllerOPENSTACK配置与管理步骤十:在compute节点配置target目录为/etc/cinder/volumes/*,命令如下。rootco
25、mpute#echo include/etc/cinder/volumes/*/etc/tgt/targets.conf上面命令的作用是,输出“include/etc/cinder/volumes/*”字符串并追加到/etc/tgt/targets.conf文件的末尾OPENSTACK配置与管理步骤十一:在compute节点启动openstack-cinder-volume服务和tgtd服务并设置为开机自动启动,命令如下。rootcompute#service openstack-cinder-volume startrootcompute#service tgtd startrootcomp
26、ute#chkconfig openstack-cinder-volume onrootcompute#chkconfig tgtd onOPENSTACK配置与管理五常见错误及调试排错:使用cinder create命令创建云硬盘时,出现以下报错,如图所示。解决方法:通过vi命令进入Cinder配置文件,命令如下。rootcontroller#vi/etc/cinder/cinder.conf查看database段落下数据库的连接配置是否正确,应改为以下内容,如图所示。OPENSTACK配置与管理修改完成后在controller节点重启相关服务,命令如下。rootcontroller#service openstack-cinder-api restartrootcontroller#service openstack-cinder-scheduler restart重启compute节点相关服务,命令如下。rootcompute#service openstack-cinder-volume restartrootcompute#service tgtd restart完成后重新使用cinder create命令创建云硬盘,命令如下,结果如图所示。