openstack之keystone&glance

openstack有很多模塊,其中有計算模塊nova, 存儲模塊cinder, 身份認證模塊keystone,計費和監控模塊cellomater, 鏡像模塊glance,網絡模塊neutron,操作界面模塊horizon以及鏡像和數據備份模塊swift(對象存儲服務)。而keystone主要分爲身份認證和權限鑑別。

一:keystone

1.1 基礎理論

在openstack中,有一個endpoint的名詞,它是一個網絡上可訪問的地址,通常是一個 URL。Service 通過 Endpoint 暴露自己的 API。 Keystone 負責管理和維護每個 Service 的 Endpoint。
 1. 可以使用以下命令來查看endpoint
在這裏插入圖片描述
  每一個用戶user也可能是一個項目,一個項目有多個角色role,也就是說一個user可能存在多個role.
  2. 查看role的命令 在這裏插入圖片描述
  3. 查看特定role的用戶對應的操作權限可以在/etc/nova/policy.json文件中查看  在這裏插入圖片描述

1.2 keystone工作過程

在身份認證階段,當用戶輸入用戶名密碼,點擊connnect的時候,openstack平臺內部其實發生了如下過程:

  1. 用戶向keystone發送登錄請求;
  2. keystone收到請求之後,認證通過之後,生成一個包含了用戶的角色信息的token;
  3. 將token發送給用戶,完成登錄,準備界面展示;
  4. 用戶向keystone發送請問,問其可以訪問哪些項目;
  5. keystone收到請求之後,查詢到對應項目信息,返回給用戶,展示到界面,開始進行instance,volume,image等列表信息展示;
  6. 用戶向keystone發送請求,問請告訴自己各個服務的endpoint;
  7. keystone查詢到各個服務的endpoint之後,返回給用戶,展示到界面上。
  8. 當再要查看具體的列表信息的時候,就由用戶去發送請求到對應的服務模塊,由對應服務模塊請求keystone驗證用戶身份是否有效,服務模塊查詢policy,json文件查看該用戶是否具有查看對應請求的權限,若有,返回本模塊的endpoint。

1.3 日誌
  Keystone 主要有兩個日誌: keystone.log 和 keystone_access.log,保存在 /var/log/apache2/ 目錄裏。 在這裏插入圖片描述

二:glance

2.1 基礎理論
 1.glance架構圖:
    在這裏插入圖片描述
  glance-api 是系統後臺運行的服務進程。 對外提供 REST API,響應 image 查詢、獲取和存儲的調用。glance-api 不會真正處理請求。 如果操作是與 image metadata(元數據)相關,glance-api 會把請求轉發給 glance-registry; 如果操作是與 image 自身存取相關,glance-api 會把請求轉發給該 image 的 store backend。
  glance-registry 是系統後臺運行的服務進程。 負責處理和存取 image 的 metadata,例如 image 的大小和類型。在控制節點上可以查看 glance-registry 進程。
  Image 的 metadata 會保持到 database 中,默認是 MySQL。 在控制節點上可以查看 glance 的 database 信息。
  Glance 自己並不存儲 image。 真正的 image 是存放在 backend 中的。 Glance 支持多種 backend,具體使用哪種 backend,是在 /etc/glance/glance-api.conf 中配置的。
  
 2.查看當前的鏡像列表 在這裏插入圖片描述
3. 查看鏡像保存目錄
在這裏插入圖片描述
每個 image 在目錄下都對應有一個文件,文件以 image 的 ID 命名。
三: openstack 命令行
  一般情況下,命令行一般爲cmd + xx-list,cmd+xx-show,cmd+xx-create param,cmd+xx-delete param,cmd+xx-update param等,這裏的cmd表示服務,比如glance,xx表示對象,比如image,但有些已經被廢棄,比如keystone的user-list的cmd要用openstack,在比如網絡neutron的cmd是openstack,對象也由原來的net變成了network,中間的橫槓也沒有了,如: 在這裏插入圖片描述
  
當然對於nova來說,操作對象是實例instance,因此這裏的xx可以省略。如nova boot,nova list,nova show instance_id,nova delete instance_id等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章