Sharing

2011年8月18日 星期四

Database in Openstack

進到 Openstack 的資料庫看了一下


show tables;
+-------------------------------------+
| Tables_in_nova                      |
+-------------------------------------+
| auth_tokens                         |
| certificates                        |
| compute_nodes                       |
| console_pools                       |
| consoles                            |
| export_devices                      |
| fixed_ips                           |
| floating_ips                        |
| instance_actions                    |
| instance_metadata                   |
| instance_types                      |
| instances                           |
| iscsi_targets                       |
| key_pairs                           |
| migrate_version                     |
| migrations                          |
| networks                            |
| projects                            |
| quotas                              |
| security_group_instance_association |
| security_group_rules                |
| security_groups                     |
| services                            |
| user_project_association            |
| user_project_role_association       |
| user_role_association               |
| users                               |
| volumes                             |
| zones                               |
+-------------------------------------+



Services

可以看到每個 service 分配在那一邊


Network



這是當初 create network 時產生在 database 中的, 其中 vlan 和 bridge 其實當初沒有指定, 不過他預設是使用 br100 和vlan100, 未來如果要切割開來更多 vlan, 不知道要怎麼處理, 不過我想這都只是設定問題, 技術上應該都是可支援的.   另外 project_id 一開始會是 NULL, 但當 create 一個 instance 之後, 就會填上去, 這部份目前也是沒有方式指定網路設定, 而且由系統直接指派.

Fixed_ips

隨著一個 vlan 的建制起來, 他會順把 Fixed ip 也都建起來, 可以看到 network_id = 2 , 對應的就是上面提到的那組, 當初是設定 192.168.3.0/24 1 255, 所以他就會從 192.168.3.0 一路建下去, 不過我比較疑惑是為什麼他只建到 .127 就停了, 原本以為他應該要建到 .254 or .255才對, 然後當一個 instance create 出來後, 他會把 instance_id 填上去

Floating_ips



再來是看 floating_ips, 由於 floating ip 是對外的 public ip, 預設是浮動的, 可以隨時改變配對的 project, 所以表格內只會看到 fixed_ip_id 及 project_id 的對應, 目前都沒使用到

Others

 SELECT COLUMN_NAME  FROM Information_Schema.COLUMNS where TABLE_NAME='volumes';



其他 table 有些是空的, 所以可以利用 information _schema 來觀察一下特定的table 有那些 column, 透過 database 的觀察其實可以大概了解 Openstack 對於每個 component 的操作及怎麼聯結, 另外是他現在還沒有很好的 UI 可以防呆, 所以像之前 network 有設錯, 在 database 就有殘存一些無法用 command line 砍掉的東西, 這種狀況下就只好手動進來修 database.


沒有留言: