OpenStack juno版 安裝配置——第九章(Cinder)
第九章——安裝和配置塊存儲服務Cinder
基礎知識:
- Cinder簡介
OpenStack塊存儲服務Cinder為虛擬機添加持久的存儲,塊存儲提供一個基礎設施為了管理卷,以及和OpenStack計算服務交互,為實例提供卷。此服務也會激活管理卷的快照和卷類型的功能。
- 塊存儲服務通常包含下列組件
- cinder-api:接受API請求,並將其路由到cinder-volume執行。
- cinder-volume:與塊存儲服務和例如cinder-scheduler的進程進行直接交互。它也可以與這些進程通過一個消息隊列進行交互。cinder-volume服務響應送到塊存儲服務的讀寫請求來維持狀態。它也可以和多種存儲提供者在驅動架構下進行交互。
- cinder-scheduler守護進程:選擇最優存儲節點來創建卷。其與nova-scheduler組件類似。
- cinder-backup守護進程:cinder-backup服務提供任何種類備份卷到一個備份存儲提供者。就像cinder-volume服務,它與多種存儲提供者在驅動架構下進行交互。
9.1、在控制節點上安裝和配置Cinder
這裡描述怎麼安裝和配置存儲服務,代號為cinder,在控制節點上。這個服務至少需要一個存儲節點為實例提供卷。在安裝配置cinder之前,必須創建資料庫、服務認證、和API endpoints。
注意:以下操作均在控制節點
1.創建資料庫
1)登錄mysql
相關命令:
- mysql -u root -p
2)創建cinder資料庫
相關命令:
- CREATE DATABASE cinder;
3)授權
相關命令:
- GRANT ALL PRIVILEGES ON cinder.*TO cinder@localhost
- IDENTIFIED BY CINDER_DBPASS;
- GRANT ALL PRIVILEGES ON cinder.*TO cinder@%
- IDENTIFIED BY CINDER_DBPASS;
4)退出mysql
相關命令:
- exit
2.生效環境變數
相關命令:
- source admin-openrc.sh
3.創建keystone認證
1)創建cinder 用戶
相關命令:
- keystone user-create --name cinder--pass CINDER_PASS
2)給cinder用戶授予admin角色
相關命令:
- keystone user-role-add --usercinder --tenant service --role admin
3)創建cinder服務實例
相關命令1:
- keystone service-create --namecinder --type volume
- --description "OpenStack Block Storage"
相關命令2:
- keystone service-create --namecinderv2 --type volumev2
- --description "OpenStack Block Storage"
注意:塊存儲服務需要兩個不同的服務實例支持api 版本1和版本2
4.創建塊存儲服務 API endpoints
相關命令1:
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 --region regionOne
相關命令2:
keystone endpoint-create --service-id $(keystone service-list | awk / volumev2 / {print $2}) --publicurl http://controller:8776/v2/%(tenant_id)s --internalurl http://controller:8776/v2/%(tenant_id)s --adminurl http://controller:8776/v2/%(tenant_id)s --region regionOne
注意:塊存儲服務需要兩個不同的endpoints ,支持api版本1和版本2
5.安裝和配置塊存儲控制器組件
相關命令:
- apt-get install cinder-apicinder-scheduler python-cinderclient
6.編輯文件cinder.conf
相關命令:
- gedit /etc/cinder/cinder.conf
1)在 [database]部分,配置資料庫訪問
[database]
connection = mysql://cinder:CINDER_DBPASS@controller/cinder
注意:沒有找到[database],這裡直接添加
2)在 [DEFAULT]部分,配置RabbitMQ 消息代理訪問
[DEFAULT]
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
3)在 [DEFAULT] 和[keystone_authtoken] 部分,配置認證訪問
[DEFAULT]auth_strategy = keystone[keystone_authtoken]auth_uri = http://controller:5000/v2.0identity_uri = http://controller:35357admin_tenant_name = serviceadmin_user = cinderadmin_password = CINDER_PASS
4)在 [DEFAULT]部分,配置控制節點管理網路ip地址
[DEFAULT]
my_ip = 10.0.0.11
5)(可選)為排除故障,在 [DEFAULT]部分啟用 verbose 日誌記錄
[DEFAULT]
verbose = True
7.同步資料庫
相關命令:
- su -s /bin/sh -c "cinder-manage db sync"cinder
8. 重啟服務
相關命令:
- service cinder-scheduler restart
- service cinder-api restart
9. 如果有SQLite 資料庫,則移除
相關命令:
- rm -f/var/lib/cinder/cinder.sqlite
9.2、在存儲節點上安裝和配置Cinder
1.準備
這一部分描述怎麼樣安裝配置cinder,為了簡單起見,這個配置引用了空的本地存儲設備 /dev/sdb的存儲節點。它包含一個分區表和一個分區/dev/sdb1 暫滿整個設備。這個規定使用LVM驅動的邏輯卷。通過 iSCSI提供給實例。
1)安裝與配置ssh
類似操作2)安裝openstack包
相關命令:
apt-get install ubuntu-cloud-keyringecho "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list
3)更新源
相關命令:
- apt-get update && apt-getdist-upgrade
2.配置網路
1)配置管理網路網卡
- 編輯interfaces
相關命令與內容:
- gedit /etc/network/interfaces
- ------------------------------內 容------------------------------
- auto eth0
- iface eth0 inet static
- address 10.0.0.41
- netmask 255.255.255.0
- gateway 10.0.0.2
- dns-nameservers 8.8.8.8
- ------------------------------內 容------------------------------
2)修改hosts為block
- 編輯hosts
相關命令與內容:
- gedit /etc/hosts
- ------------------------------內 容------------------------------
- 127.0.0.1 localhost
- 10.0.0.11 controller
- 10.0.0.41 block
- ------------------------------內 容------------------------------
3)修改hostname
- 編輯hostname
相關命令與內容:
- gedit /etc/hostname
- ------------------------------內 容------------------------------
- block
- ------------------------------內 容------------------------------
4)重啟
相關命令:
- shutdown -r now
3.安裝和配置NTP
1)安裝
相關命令:
- apt-get install ntp
2)修改配置文件ntp.conf
相關命令與內容:
- gedit /etc/ntp.conf
- server controller iburst
3)重啟NTP
相關命令:
- service ntp restart
4)查看
相關命令:
- watchntpq -p
4.為虛擬機添加硬碟
注意:增加硬碟之後,我們通過「fdisk -l」查看
5.激活硬碟
相關命令:
- fdisk /dev/sdb
- #Type in the followings:
- n
- p
- 1
- ENTER
- ENTER
- t
- 8e
- w
6.安裝LVM 包
相關命令:
- apt-get install lvm2
7.創建物理卷/dev/sdb1
相關命令:
- pvcreate /dev/sdb1
8. 創建LVM 卷組cinder-volumes
相關命令:
- vgcreate cinder-volumes /dev/sdb1
9. lvm掃描修改
只有實例才能訪問塊存儲卷,底層操作系統管理關於卷的管理設備,默認LVM 卷掃描工具會為塊存儲掃描 /dev目錄。如果租戶使用lvm,掃描工具會檢測這些卷和緩存他們,這會造成各種各樣的問題,必須重新配置lvm掃描設備。
- 編輯lvm.conf
相關命令:
- gedit /etc/lvm/lvm.conf
1)在devices 部分,添加一個篩選器接受/dev/sdb設備並拒絕所有其他設備:
devices {
...
filter = [ "a/sdb/","r/.*/"]
說明:
array數組裡包含可以訪問和拒絕選項,裡面使用正則表達式來表示。這個array數組,必須以 r/.*/結束拒絕其他設備。你可以使用 vgs -vvvv命令,測試過濾器。
提示:
如果你的存儲節點底層操作系統使用LVM,也必須添加相關的設備到過濾器。例如:如果操作系統包含 /dev/sda 設備,
filter = [ "a/sda/","a/sdb/", "r/.*/"]
類似:如果你的計算節點底層操作系統使用LVM,你必須修改 /etc/lvm/lvm.conf文件,在這些底層操作系統磁碟的節點上,例如操作系統包含/dev/sda
filter = [ "a/sda/","r/.*/"]
10. 安裝配置塊存儲卷組件
相關命令:
- apt-get install cinder-volumepython-mysqldb -y
11.編輯文件cinder.conf
相關命令:
- gedit /etc/cinder/cinder.conf
1)在[database]部分,配置資料庫訪問
[database]
connection =mysql://cinder:CINDER_DBPASS@controller/cinder
2)在 [DEFAULT]部分,配置RabbitMQ消息代理
[DEFAULT]
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
3)在[DEFAULT] 和[keystone_authtoken] 部分,配置身份認證訪問
[DEFAULT]auth_strategy = keystone[keystone_authtoken]auth_uri = http://controller:5000/v2.0identity_uri = http://controller:35357admin_tenant_name = serviceadmin_user = cinderadmin_password = CINDER_PASS
4)在[DEFAULT]部分,配置my_ip 選項
[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
替換為下面形式
[DEFAULT]
my_ip = 10.0.0.41
5)在 [DEFAULT] 部分,配置image服務的位置
[DEFAULT]
glance_host = controller
6)為排除故障,啟用verbose logging 在[DEFAULT] 部分
[DEFAULT]
verbose = True
12.重啟塊存儲volume 服務,包括它的依賴
相關命令:
- service tgt restart
- service cinder-volume restart
13. SQLite 如果存在,則移除
相關命令:
- rm -f /var/lib/cinder/cinder.sqlite
9.3、驗證安裝
注意:以下操作均在控制節點
1.環境變數生效
相關命令:
- sourceadmin-openrc.sh
2.列出安裝成功的服務組件
相關命令:
- cinderservice-list
3. 生效demo 租戶,作為一個非管理員租戶執行下面步驟
相關命令:
- sourcedemo-openrc.sh
4. 創建一個1 GB volume
相關命令:
- cindercreate --display-name demo-volume6 1
5. 驗證volume有效性
相關命令:
- cinderlist
推薦閱讀:
※我為什麼棄用OpenStack轉向VMware vsphere
※海雲捷迅的教育雲實戰經驗分享
※Kubernetes和OpenStack到底是什麼關係?
※記一次RabbitMQ集群故障處理
※2017 OpenStack Summit Day 1 | 開放雲平台在持續實踐中穩步前行