Docker 的優點
1065
2025-03-31
首先,我們通過一個有趣的栗子來認識什么是鏡像。
假如我來到一片空地,想要建一座房子,那么我需要砍木頭、搬石頭、畫圖紙等等,一頓忙活后,房子終于蓋好了。這時,我發現地址選的不好,想遷到另外一處。按照之前的方法,我必須重新砍木頭、搬石頭、畫圖紙,想想都頭大。我幻想擁有一種超能力,將蓋好的房子復制一份,做成“鏡像”,裝在口袋里,等到了另一片空地,用這個“鏡像”復制一座房子,拎包入住。
在云計算界,鏡像就是這么神奇的存在。讓我們從鏡像的前世開始談起,慢慢揭開它的神秘面紗~
溫馨提示:本文干貨較多,閱讀可能需要二十分鐘。
鏡像的前世
說到鏡像,不得不提起云計算業界大佬OpenStack。OpenStack是一個開源的云計算管理平臺項目,旨在為公共及私有云的建設與管理提供軟件,這個項目由幾個主要的組件組合起來完成一些具體的工作。Glance組件負責虛擬機鏡像的上傳、注冊、查找、編輯、刪除等功能,它提供了一個REST API,允許用戶查詢虛擬機鏡像元數據來獲取實際的鏡像文件。您可以將Glance提供的鏡像存儲在各種位置,從簡單的文件系統到對象存儲系統。OpenStack各組件關系及Glance所扮演的角色見下圖。
在OpenStack整個云環境中,如果沒有虛擬機鏡像,就無法在計算節點上生成虛擬機,OpenStack也就失去了它的意義,所以說鏡像服務是OpenStack的一個核心服務。
1、Glance組成
Glance包括以下服務:
Glance API
Glance API是系統后臺運行的服務進程,對外提供REST API,接受最終用戶或Nova Compute對鏡像的請求,諸如鏡像創建、檢索、存儲。
Glance API不會真正處理請求。如果是與鏡像元數據相關的操作,Glance API會把請求轉發給Glance Registry;如果是與鏡像自身存取相關的操作,Glance API會把請求轉發給該鏡像的Store Backend。
Glance Registry
Glance Registry是系統后臺運行的服務進程,負責處理和存取鏡像的元數據,例如鏡像的大小、格式和名稱。Glance支持多種格式的鏡像,包括AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD和VMDK,下次課程將著重介紹鏡像格式的相關知識,敬請期待。
Database
鏡像的元數據會保存到Database中,使用比較廣泛的是MySQL和SQLite。
Store Backend
Glance自己并不存儲鏡像,真正的鏡像是存放在Backend中的。Glance支持多種Backend,包括普通的文件存儲、Swift、Amazon S3等。
2、Glance的操作方式
可以通過OpenStack Web UI、命令行和OpenStack CLI三種方式操作Glance,例如鏡像的增刪改查。對于Glance的鏡像管理命令舉例如下:
glance image-create
glance image-delete
glance image-update
glance image-show
鏡像的今生
云計算從初創時的牛刀小試,到現如今成長為一個龐大的行業和生態,各云廠商不斷為其注入能量。為了提升用戶的云上體驗,華為云在鏡像服務產品能力和生態能力方面也做了很多工作,下面將從兩個方面介紹鏡像服務 IMS:
鏡像產品能力:鏡像有哪些類型?IMS提供了哪些產品能力?
鏡像生態能力:圍繞鏡像衍生出了哪些產品?這些產品對用戶有什么價值?
1、鏡像產品
鏡像分類
鏡像是云服務器運行環境的模板,在購買云服務器時,鏡像是必填項,有四個分類,分別是公共鏡像、私有鏡像、共享鏡像和市場鏡像。
他們有什么區別?實際該如何選擇呢?下面我們將這四種類型做個對比:
在實際選擇時,有一個簡單的判斷原則:
如果需要一個純凈版OS,則選擇公共鏡像
如果需要一個完整的軟件環境,比如Magento電子商務系統,則選擇市場鏡像
如果希望基于當前云服務器實例復制新實例,則選擇私有鏡像
如果想使用別人共享的鏡像,則選擇共享鏡像
鏡像產品能力
1、創建鏡像
流程
為了滿足用戶多種業務場景的需求,華為云將私有鏡像再次分類為:系統盤鏡像、數據盤鏡像和整機鏡像,從字面即可理解這幾種鏡像的含義,整機鏡像也叫全鏡像,可以包含系統盤和數據盤。整機鏡像基于差量備份制作,相比同樣磁盤容量的系統盤鏡像和數據盤鏡像,創建效率更高。
以系統盤鏡像為例,下圖展示了從ECS實例創建鏡像的過程:從現有鏡像開始,創建一個實例,自定義該實例,從該實例創建新的鏡像,并最終創建新的實例。
用途
創建鏡像可用于將ECS實例環境信息打包,快速復制新的ECS實例,常見于應用擴容場景。也可用于混合云部署場景,為了實現云上及線下資源同步,可以借助鏡像導入導出功能。以將公有云資源同步到私有云為例,實現過程如下:
a.?基于ECS制作私有鏡像,可以為系統盤鏡像或數據盤鏡像(不建議制作整機鏡像,因其不支持導出)
b.?將私有鏡像導出到OBS桶
c.?下載OBS桶中的鏡像文件,上傳到私有云使用
更多指導,請參閱“通過云服務器創建系統盤鏡像”。
2、導入鏡像
流程
支持將本地或者其他云平臺的鏡像文件導入到華為云使用,依據鏡像文件類型可用來創建ECS實例或EVS數據盤。包括四個步驟,詳細流程如下:
用途
上云,將計算資源從線下遷移到云上。
更多指導,請參閱“通過外部鏡像文件創建系統盤鏡像”。
3、導出鏡像
流程
用途
將云上的ECS系統及軟件環境復制到線下集群或私有云環境使用。
更多指導,請參閱“導出鏡像”。
4、共享鏡像
假設Jack要將自己的鏡像共享給Rose,流程如下:
同樣的鏡像,又需要共享給Alice,可以通過為鏡像添加共享租戶實現:
Rose已經使用Jack共享的鏡像完成業務部署,不再需要該鏡像,可以拒絕已經接受的共享鏡像:
Jack也可以單方向取消共享給其他人的鏡像:
更多指導,請參閱“共享指定鏡像”。
5、復制鏡像
流程
區域內復制:實現加密鏡像與非加密鏡像的轉換
跨區域復制:實現鏡像在不同區域間遷移
用途
典型場景為系統環境多區域部署,以應對系統高可用及國際化的趨勢,部署方式通常需要多區域+海外節點部署,快速實現跨區域復制ECS實例的方法之一便是通過復制鏡像將一個鏡像復制到多個區域,然后使用私有鏡像快速創建實例。
更多指導,請參閱“跨區域復制鏡像”。
2、鏡像生態
除了上文介紹的鏡像產品能力,華為云也建立了比較完善的鏡像生態體系,比如Cloud-Init開源組件、用戶數據、鏡像的商品管理能力。
Cloud-Init是開源的云初始化工具,本質上是一系列Python腳本及組件,用來在云服務器啟動時配置自定義信息。華為云公共鏡像默認都已安裝Cloud-Init,建議您在創建私有鏡像時也進行安裝。
用戶數據注入,是華為云提供的一種自定義實例啟動行為及傳入數據的功能。當您有如下需求時,可以考慮使用用戶數據注入:
通過腳本簡化實例配置
通過腳本初始化系統
已有腳本,在創建實例時一并上傳
其他可以使用腳本完成的功能
舉個栗子,通過以下腳本為Linux ECS實例更新系統軟件包,并且開啟httpd相關服務。用戶數據將會在ECS啟動時由Cloud-Init進行調度配置。注入成功后,您的ECS就可以使用httpd服務了。
#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on
遷移服務,即華為云主機遷移服務SMS,是一種P2V/V2V遷移服務,可以幫您把x86物理服務器或者私有云、公有云平臺上的虛擬機遷移到ECS上,輕松實現服務器上的應用和數據遷移到華為云。更多信息,請參閱“主機遷移服務”。
鏡像商品管理能力
華為云支持第三方ISV上架市場鏡像,市場鏡像通常由具有豐富云服務器維護和配置經驗的服務商提供,并且市場鏡像經過服務商和華為云的嚴格測試,可保證鏡像內容的安全性。
今天小課就為大家分享到這里,希望對您認識鏡像有所幫助。后續課程會展開介紹鏡像前世今生中的某些知識點,比如Cloud-Init和用戶數據注入技術,敬請期待。
鏡像服務 IMS 鏡像服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。