openstack 官方文件閱讀之cells(二)

2021-09-25 22:23:38 字數 3518 閱讀 6766

首次安裝

由於只有乙個api資料庫,因此它的連線資訊儲存在nova.conf檔案中。

[api_database]

connection = mysql+pymysql://root:secretmysql@dbserver/nova_api?charset=utf8

由於可能存在多個「cell」資料庫(實際上每個cell都將至少具有cell0和cell1),因此這些資料庫的連線資訊儲存在api資料庫中。

因此,在繼續執行以下步驟之前,必須在api資料庫的配置檔案中包含連線資訊,以便nova-manage可以找到您的其他資料庫。

以下示例顯示了setup命令的完整擴充套件命令列用法。 這是為了更容易視覺化每個命令使用的各種url。

但是,您也能夠將所有這些放在配置檔案中,nova-manage將使用這些值。

如果需要,您可以建立單獨的配置檔案並將它們作為nova-manage -config-file foo.conf傳遞給控制行為,而無需在命令列上指定內容。

以下命令使用api資料庫,因此請記住首先執行nova-manage api_db sync。

首先,我們將為cell0資料庫建立必要的記錄。 要做到這一點,我們使用nova-manage像這樣:

nova-manage cell_v2 map_cell0 –database_connection mysql+pymysql://root:secretmysql@dbserver/nova_cell0?charset=utf8

注意:如果未指定-database_connection,則nova-manage將使用配置檔案中的[database] / connection值,並將資料庫名稱修改為具有_cell0字尾。

如果您的資料庫位於不同的主機上,則應指定-database_connection或確保正在使用的nova.conf的[database] / connection值指向將用於cell0資料庫的相同使用者/密碼/主機。

如果錯誤地建立了cell0對映,則可以使用nova-manage cell_v2 delete_cell命令刪除它,然後使用正確的資料庫連線值再次執行map_cell0。

由於在cell0中沒有主機,因此其設定不需要進一步。 請注意,所有部署只有乙個cell0,因為它很特殊,因此一旦完成此步驟,即使新增更多常規單元格,也無需再次執行此操作。

現在,我們必須建立另乙個cell,它將是我們的第乙個「cell」單元,其中包含實際的計算主機,並且實際可以排程例項。 首先,我們建立如下的單元格記錄:

nova-manage cell_v2 create_cell –verbose –name cell1 \

–database_connection mysql+pymysql:

–transport-url rabbit://stackrabbit:secretrabbit@mqserver:5672/

–database_connection mysql+pymysql://nova:nova_pass@mysqldb/nova_cell1?charset=utf8 \

–transport-url rabbit://openstack:openstack@rabbitmq:5672/

注意:如果您未指定資料庫和傳輸url,則nova-manage將使用配置檔案中的[database] / connection和[default] / transport_url值。

注意:此時,api資料庫現在可以找到單元資料庫,並且其他命令將嘗試檢視內部。

如果這是乙個完全新鮮的資料庫(例如,如果您要新增cell,或者這是乙個新部署),那麼您需要在其上執行nova-manage db sync來初始化模式。

如果傳遞-verbose,則nova-manage cell_v2 create_cell命令將列印新建立的單元格的uuid,如果您需要執行針對特定單元格的discover_hosts等命令,這將非常有用。

現在我們有乙個單元,但沒有主機,這意味著排程程式永遠不會在那裡放置例項。

下一步是掃瞄資料庫中的計算節點記錄,並將它們新增到我們剛建立的單元格中。

對於此步驟,您必須已啟動計算節點,以便將其自身註冊為正在執行的服務。

一旦發生這種情況,您可以掃瞄並將其新增到單元格中:

nova-manage cell_v2 discover_hosts

此命令將連線到您已為其建立單元的任何資料庫(如上所述),查詢已在其中註冊的主機,並將這些主機對映到api資料庫中,以便排程程式將它們視為例項的可用目標。

每次向單元格新增更多計算主機時,都需要重新執行此命令以從頂層對映它們,以便可以使用它們。

從rocky版本開始,–database_connection和–transport-url的單元對映中提供的url可以包含每次從資料庫載入**估的變數,其值取自相應的基本選項 在主機的配置檔案中。

解析基本url並將以下元素替換為單元對映url:(rabbit://bob:s3kret@myhost:123/nova?sync=true#extra)

變數以大括號括起,如。 乙個簡單的模板rabbit://:@otherhost/

將與上面的示例一起使用時生成:

rabbit://bob:s3kret@otherhost/nova

注意:[default] / transport_url選項可以包含url的「netloc」部分的擴充套件語法(即usera:passworda @ hosta:porta,userb:passwordb:hostb:portb)。

在這種情況下,將遵循形式username1,username2等的替代,並且可以在模板url中使用。

這些url的模板化可能有助於為每個服務主機提供其自己的憑據,例如資料庫。

在沒有模板的情況下,所有主機都將使用相同的url(以及憑據)來訪問資料庫和訊息佇列等服務。

通過使用帶有模板的url,該模板導致從主機本地配置檔案中獲取憑據,每個主機將為這些連線使用不同的值。

假設您有兩個通常配置了cell0資料庫作為主連線的服務主機,它們的(縮寫)配置將如下所示:

[database]

connection = mysql+pymysql://service1:foo@myapidbhost/nova_cell0

and:

[database]

connection = mysql+pymysql://service2:bar@myapidbhost/nova_cell0

如果沒有cell對映模板url,它們仍將使用相同的憑據(儲存在對映中)來連線到單元資料庫。

請考慮以下模板url:

mysql+pymysql://:@mycell1dbhost/nova

and:

mysql+pymysql://:@mycell2dbhost/nova

使用第乙個服務和cell1對映,實際用於連線到該資料庫的計算url將是:

mysql+pymysql://service1:foo@mycell1dbhost/nova

常見用例的循序漸進

以下是設定cell v2的常見用例的分步示例。 這是乙個快速安裝參考,將把cell v2的設定中解釋的所有內容放在一起。 假設您已遵循nova的所有其他安裝步驟,並且此時專門設定了cell v2。

dubbo官方文件閱讀

一 入門 整體架構 單一架構 垂直架構 mvc 分布式服務架構 rpc 流計算架構 當服務越來越多時,容量評估變得困難,而且小規模的服務也經常造成資源浪費。為了解決這些問題,應新增排程中心,以根據流量管理集群容量並提高集群利用率。目前,用於提高機器利用率的資源排程和治理中心 soa 是關鍵。在大型服...

021 製作OpenStack映象官方文件

可參考官方文件 製作centos7 centos image.html 手動建立openstack映象 上傳centos7.iso 到 tmp下 1.建立虛擬磁碟 qemu img create f qcow2 tmp centos.qcow2 10g 2.建立虛擬機器virt install vi...

Spring官方文件閱讀筆記

beanpostprocessor.postprocessafterinstantiation 鉤子 型別轉化convertifnecessary spring建立bean的詳細過程 sqlsessiontemplate.selectlist sqlsessiontemplate.invoke de...