OpenStack運維故障處理指南_第1頁
OpenStack運維故障處理指南_第2頁
OpenStack運維故障處理指南_第3頁
OpenStack運維故障處理指南_第4頁
OpenStack運維故障處理指南_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、OpenStack運維故障處理指南技術創(chuàng)新,變革未來OpenStack服務眾多,運維人員有必要了解和掌握OpenStack故障處理知識,更好的運維OpenStack。本章節(jié)分為兩個部分:理論和實驗理論部分主要講解OpenStack故障處理基礎知識、工具、典型排錯方法及與故障處理相關的其他OpenStack服務。實驗部分重點練習OpenStack故障處理基本流程、常用命令及典型故障處理案例,幫助學員理論聯(lián)系實際,真正掌握OpenStack故障處理能力 。學完本課程后,您將能夠:描述OpenStack故障處理基本流程使用OpenStack故障處理常用工具處理OpenStack典型故障描述OpenS

2、tack與故障處理相關的服務具備OpenStack日常故障處理能力OpenStack故障處理基礎OpenStack故障處理工具OpenStack典型故障處理OpenStack動手實驗:故障處理OpenStack故障處理相關項目OpenStack故障處理一般方法OpenStack發(fā)生故障時,可以通過以下方法進行故障診斷和處理:驗證OpenStack服務狀態(tài)檢查OpenStack服務日志記錄為OpenStack服務啟用調試模式檢查OpenStack服務的配置文件這些方法之間沒有嚴格的先后順序,請根據(jù)實際情況選擇不同故障處理方法。驗證OpenStack服務狀態(tài)要確保OpenStack服務已啟動并運行

3、,請驗證每個控制器節(jié)點上的服務狀態(tài)。某些OpenStack服務需要在非控制器節(jié)點上進行額外驗證。方法一:使用SERVICE_NAME service-list可以快速驗證OpenStack服務狀態(tài):例如nova service-list方法二:如果服務不支持service-list命令,可以使用如下方法驗證:先ps -aux | grep SERVICE_NAME查找出服務例如ps aux | grep nova再service SERVICE_NAME status驗證服務狀態(tài)例如 service nova-api status驗證OpenStack服務狀態(tài)一覽表服務控制節(jié)點驗證非控制節(jié)點驗

4、證Novanova service-listservice nova-compute statusCinderservice cinder-api statusservice cinder-scheduler statusservice cinder-volume statusservice cinder-backup statusGlanceservice glance-api statusservice glance-registry statusNeutronservice neutron-server statusneutron agent-listservice neutron-op

5、envswitch-agent statusHeatheat service-listHorizonservice apache2 statusnetstat -nltp | egrep 80|443Keystoneservice apache2 statusnetstat -nltp | egrep 5000|35357Swiftswift stat如果服務狀態(tài)異常,可以嘗試重啟服務,例如service nova-compute restart檢查OpenStack服務日志記錄OpenStack的日志系統(tǒng)非常完善,大多數(shù)的故障都能從日志中找到原因。OpenStack日志路徑通常在/var/l

6、og/SERVICE_NAME下。節(jié)點類型服務日志路徑控制節(jié)點nova-*/var/log/nova控制節(jié)點glance-*/var/log/glance控制節(jié)點cinder-*/var/log/cinder控制節(jié)點keystone-*/var/log/keystone控制節(jié)點neutron-*/var/log/neutron控制節(jié)點horizon/var/log/apache2/所有節(jié)點misc (swift, dnsmasq)/var/log/syslog計算節(jié)點libvirt/var/log/libvirt/libvirtd.log計算節(jié)點VM實例Console(啟動消息)/var/li

7、b/nova/instances/INSTANCE-ID/console.log塊存儲節(jié)點cinder-volume/var/log/cinder/cinder-volume.log檢查OpenStack服務日志記錄 - 日志解讀OpenStack 的日志格式都是統(tǒng)一的:代碼模塊是nova.virt.libvirt.config日志內容是生成XML文件源代碼文件是/opt/stack/nova/nova/virt/libvirt/config.py 的 82 行,方法是to_xml時間戳日志等級代碼模塊Request ID日志內容源代碼位置為OpenStack服務啟用調試模式如果需要獲取更多日

8、志信息,可以為OpenStack服務啟用調試模式。開啟調試模式,登錄每個控制節(jié)點,將OpenStack服務配置文件的DEFAULT部分配置為“debug=true”。例如Nova,配置/etc/nova/nova.conf的DEFAULT部分注意: 處理故障后,請及時關閉OpenStack服務的調試模式,否則會影響性能。debug = true檢查OpenStack服務的配置文件警告:一般情況下,避免修改OpenStack服務的配置文件,可能嚴重影響OpenStack。修改配置文件前,務必確保提前備份配置文件,以便隨時還原。核心服務配置文件路徑Nova/etc/nova/api_paste.i

9、ni/etc/nova/nova.confCinder/etc/cinder/api_paste.ini/etc/cinder/cinder.confGlance/etc/glance/glance-api.conf/etc/glance/glance-cache.conf/etc/glance/glance-registry.conf/etc/glance/glance-scrubber.conf/etc/glance/glance-registry-paste.ini/etc/glance/glance-api-paste.iniNeutron/etc/neutron/api-paste.

10、ini/etc/neutron/neutron.conf/etc/neutron/dhcp_agent.ini/etc/neutron/metadata_agent.ini/etc/neutron/plugins/evs/evs_plugin.ini/etc/neutron/l3_agent.iniHeat/etc/heat/api_paste.ini/etc/heat/heat.confHorizon/etc/openstack_dashboard/local_settings.py/etc/apache2/apache2.confKeystone/etc/keystone/keystone

11、-paste.ini/etc/keystone/keystone.conf重要提示:OpenStack外部故障計算、存儲、網(wǎng)絡節(jié)點故障磁盤空間不足交換分區(qū)空間不足內存空間不足CPU負載過高文件系統(tǒng)故障物理節(jié)點故障網(wǎng)絡連接故障IP沖突交換機配置錯誤網(wǎng)線故障其他故障時間同步DNS防火墻OpenStack故障處理基礎OpenStack故障處理工具OpenStack典型故障處理OpenStack動手實驗:故障處理OpenStack故障處理相關項目OpenStack故障處理常用工具 - 網(wǎng)絡網(wǎng)絡故障處理常用工具如果運行命令時提示“Command not found”,可以先安裝工具后再使用:Ubuntu

12、 :sudo apt installCentOS :sudo yum install $ ip address$ ip netns list$ ip netns exec$ route -n$ sudo ovs-vsctl show$ sudo brctl show$ sudo ovs-tcpdump -i br-int$ sudo tcpdump -i OpenStack故障處理常用工具 - 計算和存儲計算和存儲故障處理常用工具$ top$ iostat$ dmesg$ qemu-nbd$ kpartx$ lsb_release -a$ uname -a$ df -h$ free -mOpe

13、nStack故障處理常用工具 - lnav日志查看基于消息的時間戳,lnav能把多個日志文件合并到一個視圖,并將警告和錯誤信息以不同顏色高亮顯示,故障處理更加直觀。例如,合并查看Nova和Glance的日志,追蹤虛擬機請求啟動鏡像的詳情情況:$ lnav /var/log/nova/nova-api.log /var/log/glance/glance-api.lognova-api.logglance-api.logOpenStack故障處理常用工具 - 服務和日志查看服務和日志查看常用工具$ grep aux | grep nova$ grep REQ_ID /var/log/nova/*

14、$ less /var/log/nova/nova-api.log$ less /var/log/nova/*$ zgrep * VOLUME_ID$ zgrep VOLUME_ID * | grep ERROR$ journalctl -unit nova-api.service$ journalctl -u nova*$ journalctl -u nova* | grep $ journalctl -a# colors$ journalctl -since -1hour# limit historyOpenStack故障處理常用工具 - 命令行debug執(zhí)行OpenStack命令時,使用

15、“debug”選項可以追蹤命令詳細執(zhí)行過程。bit.ly / openstack-troubleshoot Set environmentParse argumentsRequest auth(n|z)Request imageRequest flavor實驗時間:OpenStack故障處理常用工具 請登錄OpenStack實驗環(huán)境,練習OpenStack故障處理常用工具。請將命令都 -help 一次,初步了解每個命令的作用,下節(jié)內容會詳細介紹用法。例如tcpdump helpOpenStack故障處理基礎OpenStack故障處理工具OpenStack典型故障處理OpenStack動手實驗:

16、故障處理OpenStack故障處理相關項目OpenStack典型故障處理Keystone故障處理案例服務連接超時認證失敗Neutron故障處理案例無法ping通虛擬機Nova故障處理案例No valid host was foundOpenStack常見故障代碼OpenStack出現(xiàn)故障時,一般會有故障代碼,提示是什么類型故障。40X錯誤:指一個服務已經(jīng)正常運行,但用戶執(zhí)行的命令或調度任務出錯:例如,401是身份認證失敗,403是權限被拒絕50X錯誤:指一個服務沒有正常運行或不能訪問,建議檢查該服務是否運行和訪問正常:例如,500是內部錯誤,503是服務不可用Keystone故障案例 - 服務

17、連接超時故障現(xiàn)象:服務連接超時,日志中提示“HTTP 500”錯誤。故障原因:Keystone Catalog配置錯誤,導致訪問不到服務,連接超時。故障處理過程:1、檢查端點配置2、修改端點信息$ openstack catalog list$ openstack endpoint set -service compute -interface admin -url URLKeystone故障案例 - 認證失敗故障現(xiàn)象:身份認證失敗,日志中提示“HTTP 401” 錯誤。故障原因:Keystone用戶丟失、密碼輸入錯誤、用戶被禁用等。故障處理過程:1、檢查用戶是否存在、名稱是否正確2、檢查用戶

18、詳細信息3、重置用戶密碼或重新啟用用戶$ openstack user show USER_ID$ openstack user list$ openstack user set -password NEW_PASSWORD USER_ID$ openstack user set -enable USER_IDNeutron網(wǎng)絡故障處理準備在開始排除OpenStack網(wǎng)絡故障前,建議提前準備:檢查Neutron相關服務是否正常工作檢查Neutron日志日志類型日志路徑所在節(jié)點vSwitch代理日志/var/log/neutron/openvswitch-agent.log計算節(jié)點L3代理日志/

19、var/log/neutron/l3-agent.log運行L3代理的網(wǎng)絡節(jié)點DHCP代理日志/var/log/neutron/dhcp-agent.log運行DHCP代理的網(wǎng)絡節(jié)點DNSMASQ日志/var/log/messages運行DHCP代理的同一節(jié)點$ sudo grep -E -R -i trace|error /var/log/neutron/$ openstack network agent list$ sudo lnav /var/log/neutron/Neutron故障案例 - 無法ping通虛擬機故障現(xiàn)象:無法ping通虛擬機固定IP或浮動IP故障分析:固定IP一般由D

20、HCP分配,浮動IP一般由虛擬路由器管理,需逐步排錯故障處理過程:1、檢查虛擬機的安全組規(guī)則是否放行ICMP,未放行的話,添加規(guī)則放行ICMP$ openstack server show INSTANCE_ID | grep security_groups 安全組名稱$ openstack security group rule list SECURITY_GROUP_NAME | grep icmp無回顯,沒有icmp規(guī)則$ openstack security group rule create -protocol icmp SECURITY_GROUP_NAME添加icmp規(guī)則后,有回

21、顯Neutron故障案例 - 無法ping通虛擬機2、檢查虛擬機Console日志,是否為虛擬機分配了IP地址$ openstack console log show INSTANCE_ID IP地址分配截圖顯示虛擬機實例分配到的IP地址為203.X.113.110Neutron故障案例 - 無法ping通虛擬機3、如果虛擬機實例沒有被分配IP地址,檢查子網(wǎng)是否啟用了DHCP3.1 查找虛擬機網(wǎng)絡信息3.2 檢查子網(wǎng)是否啟用DHCP3.3 重啟DHCP服務$ openstack server show INSTANCE_ID | grep addresses$ openstack networ

22、k show NETWORK_ID | grep subnets$ openstack subnet show SUBNET_ID | grep enable_dhcp$ service neutron-dhcp-agent restartNetwork名稱Subnet idTrue為開啟DHCPNeutron故障案例 - 無法ping通虛擬機4、如果啟用DHCP后,還是不能ping通虛擬機固定IP,需檢查DHCP命名空間4.1 找到實例的網(wǎng)絡ID4.2 找到網(wǎng)絡的dhcp-agent位置$ nova interface-list INSTANCE_ID$ neutron dhcp-agent

23、-list-hosting-net NETWORK_IDdhcp-agent所在host名稱Network IDNeutron故障案例 - 無法ping通虛擬機4、如果啟用DHCP后,還是不能ping通虛擬機固定IP,需檢查DHCP命名空間4.3 從DHCP命名空間ping虛擬機$ ssh HOST_IP$ sudo ip netns exec qdhcp-NETWORK_ID ping INSTANCE_IP_ADDRESS 能夠從dhcp命名空間ping通虛擬機Neutron故障案例 - 無法ping通虛擬機5、如果不能從DHCP命名空間ping通虛擬機固定IP,需使用tcpdump抓包檢

24、查5.1 找到命名空間中DHCP接口$ ip netns exec qdhcp-NETWORK_ID ip address DHCP接口Neutron故障案例 - 無法ping通虛擬機5、如果不能從DHCP命名空間ping通虛擬機固定IP,需使用tcpdump抓包檢查5.2 抓包DHCP流量5.3 如果沒有DHCP流量包,從DHCP命名空間ping網(wǎng)關$ ip netns exec qdhcp-NETWORK_ID tcpdump -i DHCP_PORT e port 67 or port 68 $ ip netns exec qdhcp-NETWORK_ID ping GATEWAY_AD

25、DRESS Neutron故障案例 - 無法ping通虛擬機6、如果能ping通虛擬機固定IP,不能ping通浮動IP,需檢查虛擬路由器命名空間6.1 找到浮動IP關聯(lián)的路由ID6.2 找到網(wǎng)絡的l3-agent位置6.3 從虛擬路由器命名空間ping虛擬機$ nova interface-list INSTANCE_ID$ neutron l3-agent-list-hosting-router ROUTER_ID$ ip netns exec qrouter-ROUTER_ID ping INSTANCE_IP_ADDRESS $ ip netns exec qrouter-ROUTER_

26、ID ping INSTANCE_FLOATING_IP Nova計算故障處理準備在開始排除OpenStack計算故障前,建議提前準備:檢查Nova相關服務是否正常工作檢查Nova日志$ nova service-list日志類型日志路徑所在節(jié)點nova-*/var/log/nova控制節(jié)點libvirt/var/log/libvirt/libvirtd.log計算節(jié)點VM Console/var/lib/nova/instances/instance-/console.log計算節(jié)點$ grep -E -R -i trace|error /var/log/nova/*.log$ servic

27、e nova-compute status$ lnav /var/log/nova/*.logNova故障案例 - No valid host was found 故障現(xiàn)象:創(chuàng)建虛擬機時,提示“No valid host was found”,創(chuàng)建失敗。故障分析:Nova使用/etc/nova/nova.conf 配置的Filter Scheduler做調度分配,如果所有調度條件均不滿足,就會出現(xiàn)“No valid host was found”,虛擬機創(chuàng)建失敗。scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFi

28、lter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,CoreFilterNova故障案例 - No valid host was found 故障處理過程:1、檢查Nova日志,篩選“No valid host”錯誤日志,找出Request ID$ grep -E -R -i ”No valid host /var/log/nova/*.logRequest IDNova故障案例 - No valid host was found 故障處理過程:2、檢查Nova日志,篩選Request ID所有記錄,找出故障詳細

29、原因$ grep Request_ID /var/log/nova/*.logcompute_filter失敗Nova故障案例 - No valid host was found 故障處理過程:3、根據(jù)不同調度器故障,采用不同故障處理方法調度器故障處理方法故障處理動作CoreFilterRamFilter檢查主機可用資源nova hypervisor-stats檢查超分配參數(shù)/etc/nova/nova.confcpu_allocation_ratio = 16.0 (節(jié)點物理CPU*16)ram_allocation_ratio = 1.5 (節(jié)點物理內存*1.5)reserved_host

30、_memory_mb=512 (預留,虛擬機不能使用)RetryFilter檢查hypervisor狀態(tài)service nova-compute statusAvailabilityZoneFilter檢查AZ中是否有hypervisoropenstack availability zone listnova service-list -binary nova-computeNova故障案例 - No valid host was found 故障處理過程:3、根據(jù)不同調度器故障,采用不同故障處理方法調度器故障處理方法故障處理動作ComputeFilter檢查是否有正常工作的計算節(jié)點nova

31、service-list -binary nova-computeComputeCapabilitiesFilter檢查Hypervisor是否能滿足Flavor定義的所有屬性和自定義參數(shù)openstack flavor listopenstack flavor show nova hypervisor-listnova hypervisor-show ImagePropertiesFilter檢查Hypervisor是否能滿足Image定義的所有屬性和自定義參數(shù)openstack image listopenstack image show nova hypervisor-listnova

32、hypervisor-show OpenStack故障處理基礎OpenStack故障處理工具OpenStack典型故障處理OpenStack動手實驗:故障處理OpenStack故障處理相關項目動手實驗:使用日志、CLI處理故障日志查看認證失敗處理虛擬機實例創(chuàng)建失敗處理分配浮動IP失敗處理OpenStack故障處理基礎OpenStack故障處理工具OpenStack典型故障處理OpenStack動手實驗:故障處理OpenStack故障處理相關項目根因分析VitrageVITRAGE根因分析服務首次出現(xiàn)在OpenStack的“Newton”版本中。簡介Vitrage為OpenStack提供故障根本原因分析。Vitrage能夠組織,分析和可視化OpenStack警報和事件,給出問題出現(xiàn)的根本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論