現在,大多數公司都試圖將它們的 IT 基礎設施和電信設施遷移到私有雲, 如 OpenStack。如果你打算面試 OpenStack 管理員這個崗位,那麼下面列出的這些面試問題可能會幫助你通過面試。
答: OpenStack 是一系列開源軟體,這些軟體組成了一個雲供給軟體,也就是 OpenStack,意即開源軟體或專案棧。
下面是 OpenStack 的主要關鍵元件:
答: 以下服務通常在控制節點上執行:
答: 以下服務通常在計算節點執行:
答: 虛擬機器儲存在計算節點的 /var/lib/nova/instances
。
答: 因為 Glance 服務執行在控制節點上,所以 Glance 映象都被儲存在控制節點的 /var/lib/glance/images
資料夾下。
想了解更多請存取:在 OpenStack 中如何使用命令列建立和刪除虛擬機器
答: 我們可以使用如下 OpenStack 命令來啟動一個新的虛擬機器:
# openstack server create --flavor {flavor-name} --image {Image-Name-Or-Image-ID} --nic net-id={Network-ID} --security-group {Security_Group_ID} –key-name {Keypair-Name} <VM_Name>
答: 可以使用 ip net ns
命令來列出使用者的網路名稱空間。
~# ip netns listqdhcp-a51635b1-d023-419a-93b5-39de47755d2dhaproxyvrouter
答: 假設我們想在 qdhcp-a51635b1-d023-419a-93b5-39de47755d2d
網路名稱空間中執行 ifconfig
命令,我們可以執行如下命令。
命令格式 : ip netns exec {network-space} <command>
:
~# ip netns exec qdhcp-a51635b1-d023-419a-93b5-39de47755d2d "ifconfig"
答: Glance 服務中雲映象上傳可以使用如下 OpenStack 命令:
~# openstack image create --disk-format qcow2 --container-format bare --public --file {Name-Cloud-Image}.qcow2 <Cloud-Image-Name>
下載雲映象則使用如下命令:
~# glance image-download --file <Cloud-Image-Name> --progress <Image-ID>
答: 在某些情況下虛擬機器可能會進入錯誤狀態,可以使用如下命令將錯誤狀態轉換為活動狀態:
~# nova reset-state --active {Instance_id}
答: 可使用如下命令來顯示可用浮動 IP 列表:
~]# openstack ip floating list | grep None | head -10
答: 假設我們想在 compute-02 中的可用區 NonProduction 上設定虛擬機器,可以使用如下命令:
~]# openstack server create --flavor m1.tiny --image cirros --nic net-id=e0be93b8-728b-4d4d-a272-7d672b2560a6 --security-group NonProd_SG --key-name linuxtec --availability-zone NonProduction:compute-02 nonprod_testvm
答: 假設我們想要獲取在 compute-0-19 中設定的虛擬機器列表,可以使用如下命令:
命令格式: openstack server list –all-projects –long -c Name -c Host | grep -i {Compute-Node-Name}
:
~# openstack server list --all-projects --long -c Name -c Host | grep -i compute-0-19
答: 使用如下命令可檢視範例的控制台紀錄檔。
首先獲取範例的 ID,然後使用如下命令:
~# openstack console log show {Instance-id}
答: 可以使用以下 OpenStack 命令從命令列檢索範例的控制台 URL 地址:
~# openstack console url show {Instance-id}
答: 假設建立一個 8GB 可啟動儲存卷,可參考如下步驟:
使用如下命令獲取映象列表
~# openstack image list | grep -i cirros| 89254d46-a54b-4bc8-8e4d-658287c7ee92 | cirros | active |
使用 cirros 映象建立 8GB 的可啟動儲存卷
~# cinder create --image-id 89254d46-a54b-4bc8-8e4d-658287c7ee92 --display-name cirros-bootable-vol 8
答: 可以使用如下命令來檢索所有專案和使用者:
~# openstack project list --long
答: OpenStack 伺服器端點被分為 3 類:
使用如下 OpenStack 命令來檢視各種 OpenStack 伺服器端點:
~# openstack catalog list
可通過以下命令來顯示特定伺服器端點(比如說 keystone)列表:
~# openstack catalog show keystone
想了解更多請存取:OpenStack 中的範例建立流程。
答: 應該按照如下步驟來重新啟動 OpenStack 控制節點的 nova 服務:
service nova-api restart
service nova-cert restart
service nova-conductor restart
service nova-consoleauth restart
service nova-scheduler restart
答: 因為我們使用 openvSwitch (OVS) 來設定 DPDK 埠,因此可以使用如下命令來檢查埠的狀態:
root@compute-0-15:~# ovs-appctl bond/show | grep dpdkactive slave mac: 90:38:09:ac:7a:99(dpdk0)slave dpdk0: enabledslave dpdk1: enabledroot@compute-0-15:~#root@compute-0-15:~# dpdk-devbind.py --status
答: 可以使用 neutron
命令向 OpenStack 已存在的安全組中新增新規則:
~# neutron security-group-rule-create --protocol <tcp or udp> --port-range-min <port-number> --port-range-max <port-number> --direction <ingress or egress> --remote-ip-prefix <IP-address-or-range> Security-Group-Name
答: 控制節點和計算節點的 OVS 橋設定可使用以下命令來檢視:
~]# ovs-vsctl show
答: 整合橋(br-int)對來自和執行在計算節點上的範例的流量執行 VLAN 標記和取消標記。
封包從範例的 n/w 介面發出使用虛擬介面 qvo 通過 Linux 橋(qbr)。qvb 介面是用來連線 Linux 橋的,qvo 介面是用來連線整合橋的。整合橋上的 qvo 埠有一個內部 VLAN 標籤,這個標籤是用於當封包到達整合橋的時候貼到封包頭部的。
答: 隧道橋(br-tun)根據 OpenFlow 規則將 VLAN 標記的流量從整合網橋轉換為隧道 ID。
隧道橋允許不同網路的範例彼此進行通訊。隧道有利於封裝在非安全網路上傳輸的流量,它支援兩層網路,即 GRE 和 VXLAN。
答: 顧名思義,此網橋轉發來往網路的流量,以允許外部存取範例。br-ex 連線物理介面比如 eth2,這樣使用者網路的浮動 IP 資料從物理網路接收並路由到使用者網路埠。
答: OpenFlow 規則是一種機制,這種機制定義了一個封包如何從源到達目的地。OpenFlow 規則儲存在 flow 表中。flow 表是 OpenFlow 交換機的一部分。
當一個封包到達交換機就會被第一個 flow 表檢查,如果不匹配 flow 表中的任何入口,那這個封包就會被丟棄或者轉發到其他 flow 表中。
答: 假如我們要顯示 OpenFlow 交換機的資訊(br-int),需要執行如下命令:
root@compute-0-15# ovs-ofctl show br-intOFPT_FEATURES_REPLY (xid=0x2): dpid:0000fe981785c443n_tables:254, n_buffers:256capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IPactions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst 1(patch-tun): addr:3a:c6:4f:bd:3e:3b config: 0 state: 0 speed: 0 Mbps now, 0 Mbps max 2(qvob35d2d65-f3): addr:b2:83:c4:0b:42:3a config: 0 state: 0 current: 10GB-FD COPPER speed: 10000 Mbps now, 0 Mbps max ………………………………………
答: 可以使用命令 ovs-ofctl dump-flows
來檢視交換機的 flow 入口。
假設我們想顯示 OVS 整合橋(br-int)的所有 flow 入口,可以使用如下命令:
[root@compute01 ~]# ovs-ofctl dump-flows br-int
答: OpenStack Neutron 伺服器充當中心控制器,實際網路設定是在計算節點或者網路節點上執行的。Neutron 代理是計算節點或者網路節點上進行設定更新的軟體實體。Neutron 代理通過 Neuron 服務和訊息佇列來和中心 Neutron 服務通訊。
可通過如下命令檢視 Neutron 代理列表:
~# openstack network agent list -c ‘Agent type’ -c Host -c Alive -c State
答: CPU Pinning 是指為某個虛擬機器保留物理核心。它也稱為 CPU 隔離或處理器關聯。有兩個目的:
我們也可以認為 Pinning 是物理核心到一個使用者虛擬 CPU(vCPU)的一對一對映。