OpenStack虛擬機刪除后停在deleting無法正常刪除


公司環境中批量刪除虛擬機的過程中出現某些虛擬機無法正常刪除,任務狀態顯示刪除中但是虛擬無法刪除。

通過查詢相關文章(下文轉載)發現應該是instances row中鍵值未更新錯誤導致,但是按照操作雲主機數量中內容移除信息但是概況中還是出現該資源被占用的情況。(批量方式待解決)

1.命令行處理方式:(完美解決)

通過rest-state和force-delete后某些報錯VM可以清除(測試可行,但是有時候nova delete命令無效,控制台測試可以正常刪除)

# nova reset-state --active UUID

# nova force-delete --active UUID

[root@controller1 ~]# nova list

[root@controller1 ~]# nova reset-state 1274d42e-4934-4c8b-96ea-c62adeb0210d
Reset state for server 1274d42e-4934-4c8b-96ea-c62adeb0210d succeeded; new state is error
[root@controller1 ~]# nova list

[root@controller1 ~]# nova reset-state 1274d42e-4934-4c8b-96ea-c62adeb0210d --active
Reset state for server 1274d42e-4934-4c8b-96ea-c62adeb0210d succeeded; new state is active
[root@controller1 ~]# nova list

[root@controller1 ~]# nova delete 1274d42e-4934-4c8b-96ea-c62adeb0210d
Request to delete server 1274d42e-4934-4c8b-96ea-c62adeb0210d has been accepted.
[root@controller1 ~]# nova list

 

具體的BUG信息請參考:https://review.openstack.org/#/c/294491/  (通常需要刪除后重啟nova-compute服務才能生效該方法不需要重啟服務)

https://community.rackspace.com/products/f/45/t/1478

2.數據庫處理方式:(未完全解決,概況中存在資源被占用情況)

MariaDB [nova]> select * from instances\G

*************************** 73. row ***************************
created_at: 2017-08-24 09:49:35
updated_at: 2017-08-25 03:40:45
deleted_at: NULL
id: 174
internal_id: NULL
user_id: 1487af17b9b34850972f451f34394c34
project_id: af087ac33ae2455091db74836d07e1b0
image_ref: e5cf5847-50d0-4584-b77e-0db5479ee7c0
kernel_id:
ramdisk_id:
launch_index: 0
key_name: NULL
key_data: NULL
power_state: 1
vm_state: active
memory_mb: 16384
vcpus: 4
hostname: concar-es01
host: compute1
user_data: NULL
reservation_id: r-b4ya1x14
scheduled_at: NULL
launched_at: 2017-08-24 09:50:46
terminated_at: NULL
display_name: concar-es1
display_description: concar-es01
availability_zone: nova
locked: 0
os_type: NULL
launched_on: compute1
instance_type_id: 57
vm_mode: NULL
uuid: d1027782-6dbe-4bd2-ae02-f69c5632e905
architecture: NULL
root_device_name: /dev/vda
access_ip_v4: NULL
access_ip_v6: NULL
config_drive:
task_state: deleting
default_ephemeral_device: NULL
default_swap_device: NULL
progress: 0
auto_disk_config: 1
shutdown_terminate: 0
disable_terminate: 0
root_gb: 30
ephemeral_gb: 0
cell_name: NULL
node: compute1
deleted: 0
locked_by: NULL
cleaned: 0
ephemeral_key_uuid: NULL

*************************** 74. row ***************************

使用命令進行修改

MariaDB [nova]> update instances set deleted=1 where uuid='d1027782-6dbe-4bd2-ae02-f69c5632e905';

修改后:

*************************** 73. row ***************************
created_at: 2017-08-24 09:49:35
updated_at: 2017-08-25 03:40:45
deleted_at: NULL
id: 174
internal_id: NULL
user_id: 1487af17b9b34850972f451f34394c34
project_id: af087ac33ae2455091db74836d07e1b0
image_ref: e5cf5847-50d0-4584-b77e-0db5479ee7c0
kernel_id:
ramdisk_id:
launch_index: 0
key_name: NULL
key_data: NULL
power_state: 1
vm_state: active
memory_mb: 16384
vcpus: 4
hostname: concar-es01
host: compute1
user_data: NULL
reservation_id: r-b4ya1x14
scheduled_at: NULL
launched_at: 2017-08-24 09:50:46
terminated_at: NULL
display_name: concar-es1
display_description: concar-es01
availability_zone: nova
locked: 0
os_type: NULL
launched_on: compute1
instance_type_id: 57
vm_mode: NULL
uuid: d1027782-6dbe-4bd2-ae02-f69c5632e905
architecture: NULL
root_device_name: /dev/vda
access_ip_v4: NULL
access_ip_v6: NULL
config_drive:
task_state: deleting
default_ephemeral_device: NULL
default_swap_device: NULL
progress: 0
auto_disk_config: 1
shutdown_terminate: 0
disable_terminate: 0
root_gb: 30
ephemeral_gb: 0
cell_name: NULL
node: compute1
deleted: 1
locked_by: NULL
cleaned: 0
ephemeral_key_uuid: NULL

修改前和修改后對比:

修改后和其他正常刪除的虛擬信息對比:

 刪除后更新為:

 

轉載鏈接:http://www.cnblogs.com/horizonli/p/5172213.html

部署OpenStack問題匯總(五)--openstack中刪除虛擬主機,狀態一直未deleting

【原創文章,轉載請注明出處】

一、我重啟了該機器,之后想刪除沒有創建成功的虛擬機(沒有打開cpu的vt),結果發現狀態一直為deleting狀態。在這個狀態下創建虛擬機也失敗。

 

二、分析:在/var/log/nova/nova-compute.log的log找到如下的信息:

---------------------------------------------------------------------------------------------------------

2012-08-13 14:30:45 CRITICAL nova [-] Instance instance-00000002 could not be found.

---------------------------------------------------------------------------------------------------------

接着又發現nova-compute(service nova-compute status)的狀態為stop,重啟不能成功。

 

三、處理:

最后我修改了nova數據庫中的instance-00000002的deleted,把它變成1。

mysql> select * from instances\G
mysql> update instances set deleted=1 where id=2;   (注意:根據不同的版本deleted的值不定,有些版本會改成對應的ID號。)

之后,dashboard的頁面中發現已經刪除了。

重啟nova-compute,再次創建虛擬機,狀態都為active。

 

問題的思考方向:虛擬機的操作(創建、刪除等)一定跟nova-compute有關。


----------------------------------------------------------------------------------------------------
2014年3月25日更新
在按照以上操作后,發現雖然實例已經刪除,如下圖:
如果要手動刪除一個instance:
 
 
                           
但是在概況中依然出現了該實例占用內存、cpu的信息:如下圖的windows7-vm,這個instance已經做了上面的操作進行刪除,但是這里還在顯示。
 
 
然后,為了避免干擾測試,正確刪除了testwin后,ssh連接上主機。打開mysql數據庫,進入nova數據庫。
使用show tables命令找到下面三個表:
quota_classes      #打開發現為空表
quota_usages      #這里面的內容表示為上圖中的圖餅。
quotas                  #這里面表示的是一些配額的限制值。
這時候,查看quota_usages表
select  *  from quota_usages;
 
將表中的in_use 的值改為0,再刷新dashboard,就看到正常的圖餅了。
 
 
 
 刪除完畢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM