【產品功能】配置網卡從此與關機無緣,彈性網卡支持熱插拔功能
阿新 • • 發佈:2018-05-09
控制臺摘要: 本文主要介紹了彈性網卡的熱插撥功能改進,彈性網卡插拔對應的實例不再要求必須為 Stopped 狀態,現在只要求是穩定狀態( Running Stopped )即可。以及介紹了控制臺、OpenAPI如何對彈性網卡進行熱插拔操作。
背景
在雲計算飛速發展的今天,用戶ECS服務器身處的網絡環境越來越復雜,彈性網卡讓ECS服務器完美遊走在日益復雜的網絡環境中。但是以前服務器必須是Stopped
狀態才可以進行彈性網卡(ENI
)的插拔,這樣可能會影響運行在服務器上的業務。現在很高興的向大家宣布:彈性網卡從今天開始支持熱插撥,即ECS服務器只要處在穩定狀態(Running
Stopped
),就可以對彈性網卡進行插拔操作。
彈性網卡熱插拔:控制臺
控制臺操作彈性網卡的位置:進入控制臺 -> 雲服務器 ECS -> 彈性網卡。
創建彈性網卡:點擊
創建彈性網卡
按鈕,在彈窗中填寫網卡名稱,選擇專有網絡 交換機 安全組等信息後創建彈性網卡。熱掛載彈性網卡:點擊彈性網卡對應的
綁定實例
按鈕,在彈窗中選擇要綁定實例。實例狀態只要求為穩定狀態(Running
Stopped
)。熱卸載彈性網卡:點擊彈性網卡對應的
解綁實例
按鈕,確定即可解綁。實例狀態只要求為穩定狀態(Running
Stopped
)。
彈性網卡熱插拔:OpenAPI
attach_eni detach_eni 分別可以根據彈性網卡ID,實例ID,進行彈性網卡的熱插拔。相關API參考幫助文檔:掛載彈性網卡,卸載彈性網卡。
# coding=utf-8# if the python sdk is not install using 'sudo pip install aliyun-python-sdk-ecs'# if the python sdk is install using 'sudo pip install --upgrade aliyun-python-sdk-ecs'# make sure the sdk version is 4.7.1, you can use command 'pip show aliyun-python-sdk-ecs' to checkimport jsonimport loggingfrom aliyunsdkcore import clientfrom aliyunsdkecs.request.v20140526.CreateNetworkInterfaceRequest import CreateNetworkInterfaceRequestfrom aliyunsdkecs.request.v20140526.AttachNetworkInterfaceRequest import AttachNetworkInterfaceRequestfrom aliyunsdkecs.request.v20140526.DetachNetworkInterfaceRequest import DetachNetworkInterfaceRequestfrom aliyunsdkecs.request.v20140526.DeleteNetworkInterfaceRequest import DeleteNetworkInterfaceRequest# configuration the log output formatter, if you want to save the output to file,# append ",filename='ecs_invoke.log'" after datefmt.logging.basicConfig(level=logging.INFO, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S')# send open api requestdef _send_request(request): request.set_accept_format('json') try: response_str = clt.do_action(request) logging.info(response_str) response_detail = json.loads(response_str) return response_detail except Exception as e: logging.error(e)# create enidef create_eni(vSwitchId, securityGroupId, networkInterfaceName=None, primaryIpAddress=None, description=None, clientToken=None): request = CreateNetworkInterfaceRequest() request.set_VSwitchId(vSwitchId) request.set_SecurityGroupId(securityGroupId) if (networkInterfaceName != None): request.set_NetworkInterfaceName(networkInterfaceName) if (primaryIpAddress != None): request.set_PrimaryIpAddress(primaryIpAddress) if (description != None): request.set_Description(description) if (clientToken != None): request.set_ClientToken(clientToken) _send_request(request)# attach eni to instancedef attach_eni(eniId, instanceId): request = AttachNetworkInterfaceRequest() request.set_NetworkInterfaceId(eniId) request.set_InstanceId(instanceId) _send_request(request)# detach eni from instancedef detach_eni(eniId, instanceId): request = DetachNetworkInterfaceRequest() request.set_NetworkInterfaceId(eniId) request.set_InstanceId(instanceId) _send_request(request)# delete enidef delete_eni(eniId): request = DeleteNetworkInterfaceRequest() request.set_NetworkInterfaceId(eniId) _send_request(request)if __name__ == '__main__': clt = client.AcsClient('Your Access Key Id', 'Your Access Key Secrect', 'cn-zhangjiakou') vSwitchId = "vsw-test" securityGroupId = "sg-test" # create_eni(vSwitchId=vSwitchId, securityGroupId=securityGroupId) attach_eniId = "eni-test" attach_instanceId = "i-test" # attach_eni(attach_eniId, attach_instanceId) detach_eniId = "eni-test" detach_instanceId = "i-test" # detach_eni(detach_eniId, detach_instanceId) delete_eniId = "eni-test" # delete_eni(delete_eniId)
小結
現在的彈性網卡熱插拔只要求實例為穩定狀態即可,改進了以前實例只能為Stopped
狀態才能插拔彈性網卡的現狀。提升了用戶體驗,現在服務器不用關機就能輕松配置彈性網卡,更加靈活實用。
原文鏈接
【產品功能】配置網卡從此與關機無緣,彈性網卡支持熱插拔功能