OpenStack juno版 安裝配置——第九章(Cinder)

第九章——安裝配置塊存儲服務Cinder

基礎知識:

  • Cinder簡介

OpenStack塊存儲服務Cinder為虛擬機添加持久的存儲,塊存儲提供一個基礎設施為了管理卷,以及和OpenStack計算服務交互,為實例提供卷。此服務也會激活管理卷的快照和卷類型的功能。

  • 塊存儲服務通常包含下列組件

  1. cinder-api:接受API請求,並將其路由到cinder-volume執行。

  2. cinder-volume:與塊存儲服務和例如cinder-scheduler的進程進行直接交互。它也可以與這些進程通過一個消息隊列進行交互。cinder-volume服務響應送到塊存儲服務的讀寫請求來維持狀態。它也可以和多種存儲提供者在驅動架構下進行交互。

  3. cinder-scheduler守護進程:選擇最優存儲節點來創建卷。其與nova-scheduler組件類似。

  4. cinder-backup守護進程:cinder-backup服務提供任何種類備份卷到一個備份存儲提供者。就像cinder-volume服務,它與多種存儲提供者在驅動架構下進行交互。

9.1、在控制節點上安裝和配置Cinder

這裡描述怎麼安裝和配置存儲服務,代號為cinder,在控制節點上。這個服務至少需要一個存儲節點為實例提供卷。在安裝配置cinder之前,必須創建資料庫、服務認證、和API endpoints。

注意:以下操作均在控制節點

1.創建資料庫

1)登錄mysql

相關命令:

  1. mysql -u root -p

2)創建cinder資料庫

相關命令:

  1. CREATE DATABASE cinder;

3)授權

相關命令:

  1. GRANT ALL PRIVILEGES ON cinder.*TO cinder@localhost

  2. IDENTIFIED BY CINDER_DBPASS;

  3. GRANT ALL PRIVILEGES ON cinder.*TO cinder@%

  4. IDENTIFIED BY CINDER_DBPASS;

4)退出mysql

相關命令:

  1. exit

2.生效環境變數

相關命令:

  1. source admin-openrc.sh

3.創建keystone認證

1)創建cinder 用戶

相關命令:

  1. keystone user-create --name cinder--pass CINDER_PASS

2)給cinder用戶授予admin角色

相關命令:

  1. keystone user-role-add --usercinder --tenant service --role admin

3)創建cinder服務實例

相關命令1:

  1. keystone service-create --namecinder --type volume

  2. --description "OpenStack Block Storage"

相關命令2:

  1. keystone service-create --namecinderv2 --type volumev2

  2. --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.安裝配置塊存儲控制器組件

相關命令:

  1. apt-get install cinder-apicinder-scheduler python-cinderclient

6.編輯文件cinder.conf

相關命令:

  1. 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.同步資料庫

相關命令:

  1. su -s /bin/sh -c "cinder-manage db sync"cinder

8. 重啟服務

相關命令:

  1. service cinder-scheduler restart

  2. service cinder-api restart

9. 如果有SQLite 資料庫,則移除

相關命令:

  1. 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)更新源

相關命令:

  1. apt-get update && apt-getdist-upgrade

2.配置網路

1)配置管理網路網卡

  • 編輯interfaces

相關命令與內容:

  1. gedit /etc/network/interfaces

  2. ------------------------------內 容------------------------------

  3. auto eth0

  4. iface eth0 inet static

  5. address 10.0.0.41

  6. netmask 255.255.255.0

  7. gateway 10.0.0.2

  8. dns-nameservers 8.8.8.8

  9. ------------------------------內 容------------------------------

2)修改hosts為block

  • 編輯hosts

相關命令與內容:

  1. gedit /etc/hosts

  2. ------------------------------內 容------------------------------

  3. 127.0.0.1 localhost

  4. 10.0.0.11 controller

  5. 10.0.0.41 block

  6. ------------------------------內 容------------------------------

3)修改hostname

  • 編輯hostname

相關命令與內容:

  1. gedit /etc/hostname

  2. ------------------------------內 容------------------------------

  3. block

  4. ------------------------------內 容------------------------------

4)重啟

相關命令:

  1. shutdown -r now

3.安裝配置NTP

1)安裝

相關命令:

  1. apt-get install ntp

2)修改配置文件ntp.conf

相關命令與內容:

  1. gedit /etc/ntp.conf

  2. server controller iburst

3)重啟NTP

相關命令:

  1. service ntp restart

4)查看

相關命令:

  1. watchntpq -p

4.為虛擬機添加硬碟

注意:增加硬碟之後,我們通過「fdisk -l」查看

5.激活硬碟

相關命令:

  1. fdisk /dev/sdb

  2. #Type in the followings:

  3. n

  4. p

  5. 1

  6. ENTER

  7. ENTER

  8. t

  9. 8e

  10. w

6.安裝LVM 包

相關命令:

  1. apt-get install lvm2

7.創建物理卷/dev/sdb1

相關命令:

  1. pvcreate /dev/sdb1

8. 創建LVM 卷組cinder-volumes

相關命令:

  1. vgcreate cinder-volumes /dev/sdb1

9. lvm掃描修改

只有實例才能訪問塊存儲卷,底層操作系統管理關於卷的管理設備,默認LVM 卷掃描工具會為塊存儲掃描 /dev目錄。如果租戶使用lvm,掃描工具會檢測這些卷和緩存他們,這會造成各種各樣的問題,必須重新配置lvm掃描設備。

  • 編輯lvm.conf

相關命令:

  1. 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. 安裝配置塊存儲卷組件

相關命令:

  1. apt-get install cinder-volumepython-mysqldb -y

11.編輯文件cinder.conf

相關命令:

  1. 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 服務,包括它的依賴

相關命令:

  1. service tgt restart

  2. service cinder-volume restart

13. SQLite 如果存在,則移除

相關命令:

  1. rm -f /var/lib/cinder/cinder.sqlite

9.3、驗證安裝

注意:以下操作均在控制節點

1.環境變數生效

相關命令:

  1. sourceadmin-openrc.sh

2.列出安裝成功的服務組件

相關命令:

  1. cinderservice-list

3. 生效demo 租戶,作為一個非管理員租戶執行下面步驟

相關命令:

  1. sourcedemo-openrc.sh

4. 創建一個1 GB volume

相關命令:

  1. cindercreate --display-name demo-volume6 1

5. 驗證volume有效性

相關命令:

  1. cinderlist


推薦閱讀:

我為什麼棄用OpenStack轉向VMware vsphere
海雲捷迅的教育雲實戰經驗分享
Kubernetes和OpenStack到底是什麼關係?
記一次RabbitMQ集群故障處理
2017 OpenStack Summit Day 1 | 開放雲平台在持續實踐中穩步前行

TAG:雲計算 | 大數據 | OpenStack |