真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OpenStack中怎么面向用戶的操作

這篇文章給大家介紹OpenStack中怎么面向用戶的操作,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站設(shè)計(jì)方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及成都水泥攪拌車等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

鏡像

OpenStack 鏡像通??梢员焕斫鉃椤疤摍C(jī)模板”。鏡像也可以被認(rèn)為是標(biāo)準(zhǔn)安裝介質(zhì)例如ISO 鏡像. 基本上,它們都含有能啟動(dòng)實(shí)例的啟動(dòng)系統(tǒng)文件。

增加鏡像

有幾種預(yù)制作好的鏡像可以被很簡(jiǎn)單的導(dǎo)入鏡像服務(wù)。一個(gè)最通常被加入的鏡像就是CirrOS 鏡像,非常小,被用來(lái)作為測(cè)試。為增加這種鏡像,只需要:

# wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img # glance image-create –name=’cirros image’ –is-public=true –container-format=bare –disk-format=qcow2 < cirros-0.3.0-x86_64-disk.img

glance image-create 命令有很多選項(xiàng),例如  min-disk選項(xiàng)對(duì)啟動(dòng)分區(qū)有大小要求的鏡像(象windows需要比較大的分區(qū))非常有用。為查看這些選項(xiàng): $ glance help image-create location 選項(xiàng)需要特別注意。它并不復(fù)制整個(gè)鏡像到Glance,而是提供鏡像的原始路徑。當(dāng)啟動(dòng)一個(gè)實(shí)例的時(shí)候,Glance會(huì)到該路徑加載鏡像。 copy-from 選項(xiàng)從指定路徑復(fù)制鏡像到 /var/lib/glance/images 。在例子中使用STDIN 重定向也完成相同任務(wù)。 運(yùn)行下述命令來(lái)查看已有鏡像的詳細(xì)信息: $ glance details  刪除鏡像 為了刪除一個(gè)鏡像,用以下命令:

$ glance image-delete 

注意:刪除鏡像不影響基于此鏡像的虛機(jī)實(shí)例或快照。

其他命令行選項(xiàng): 全部選項(xiàng)可以用以下命令查看: $ glance help 或: OpenStack Image Service 命令行指南。 (http://docs.openstack.org/cli/quick-start/content/glance-cli-reference.html)  鏡像服務(wù)和數(shù)據(jù)庫(kù) 唯一不被Glance 數(shù)據(jù)庫(kù)存儲(chǔ)的是鏡像本身。Glance數(shù)據(jù)庫(kù)有兩個(gè)主要的表: images image_properties 通過(guò)直接對(duì)數(shù)據(jù)庫(kù)的操作,SQL查詢等可以得到定制化的Glance鏡像的列表和報(bào)告。 技術(shù)上,可以通過(guò)操作數(shù)據(jù)庫(kù)來(lái)更新鏡像的屬性,雖然這不是推薦的做法。  鏡像數(shù)據(jù)庫(kù)查詢示例 一個(gè)有趣的例子是修改鏡像列表和鏡像擁有者。這可以簡(jiǎn)單地通過(guò)查找擁有者的ID來(lái)實(shí)現(xiàn)。以下的例子做得更多的事-會(huì)顯示擁有者的名字:

$ MySQL> select glance.images.id, glance.images.name, keystone.tenant.name, is_public from glance. Images inner join keystone.tenant on glance. images.owner=keystone.tenant.id;

另一個(gè)例子,顯示某個(gè)鏡像的詳細(xì)信息:

$ mysql> select name, value from image_properties where id = 

類型模板(flavor) 在Openstack中,虛機(jī)硬件模板被稱為類型模板(flavor),包括RAM和硬盤(pán)大小,CPU核數(shù)等。標(biāo)準(zhǔn)安裝后有5個(gè)缺省的類型。類型模板可以被有管理員權(quán)限的用戶修改(修改的權(quán)限也可以被編輯,通過(guò)在nova-api 服務(wù)器上的/etc/nova/policy.json 文件中修改訪問(wèn)控制:compute_extension:flavormanage )。在系統(tǒng)上查看可用的類型模板: $ nova flavor-list +—-+———–+———–+——+———–++——-+-+————-+ | ID | Name | Memory_MB | Disk | Ephemeral |/| VCPUs | /| extra_specs | +—-+———–+———–+——+———–++——-+-+————-+ | 1 | m1.tiny | 512 | 0 | 0 |/| 1 | /| {} | | 2 | m1.small | 2048 | 10 | 20 |\| 1 | \| {} | | 3 | m1.medium | 4096 | 10 | 40 |/| 2 | /| {} | | 4 | m1.large | 8192 | 10 | 80 |\| 4 | \| {} | | 5 | m1.xlarge | 16384 | 10 | 160 |/| 8 | /| {} | +—-+———–+———–+——+———–++——-+-+————-+ nova flavor-create 命令可以讓經(jīng)過(guò)授權(quán)的用戶創(chuàng)建新類型模板。其他控制功能可以通過(guò)以下命令查看:

$ nova help | grep flavor.

類型模板定義了以下元素: 列 描述 ID 一個(gè)唯一的數(shù)字ID Name 描述性的名字。xx.size_name通常方式是不需要的,雖然有些第三方工具可能需要這么設(shè)置 Memory_MB 虛機(jī)內(nèi)存(MB) Disk 虛擬啟動(dòng)硬盤(pán)的大?。℅B)。這是個(gè)裝載啟動(dòng)軟件的非持久化的硬盤(pán)。當(dāng)從一個(gè)持久化硬盤(pán)啟動(dòng)的時(shí)候就不需要了。 大小為 “0” 是一個(gè)特殊的大小,表示采用和啟動(dòng)軟件鏡像相同的大小。 Ephemeral 指定第二個(gè)非持久化硬盤(pán)的大小。這是一個(gè)空的,沒(méi)有被格式化的硬盤(pán),只在虛機(jī)存在的時(shí)候存在。 Swap 虛機(jī)的可選的交換分區(qū)空間 VCPUs 虛機(jī)中虛擬CPU的核數(shù) RXTX_Factor 此可選屬性讓被創(chuàng)建的服務(wù)器有和其帶有的網(wǎng)絡(luò)硬件有不同的帶寬。這個(gè)可變因子定義RXTX(輸入輸出)與網(wǎng)絡(luò)硬件帶寬的比例。 缺省值是1.0,也就是說(shuō),和硬件帶寬相同。 Is_Public 布爾值,類型模板是只給租戶內(nèi)的用戶用還是可以給其他租戶使用(公開(kāi))。缺省為真,即公開(kāi)。 extra_specs 附加的可選項(xiàng),限制哪臺(tái)主機(jī)可以運(yùn)行某種類型模板。采用key/value值得方式,只有有相同key/value值得主機(jī)才能運(yùn)行相關(guān)類型模板??梢杂脕?lái)處理在特殊情況下部署,例如: 有些類型模板只能在有GPU的主機(jī)上運(yùn)行。  如何修改一個(gè)已有的類型模板? 不幸的是,OpenStack沒(méi)有提供修改模板的接口,只有增加和刪除。Dashboard里的模板修改的工作模式其實(shí)是刪除舊模板并增加一個(gè)同名模板。

安全組

對(duì)新用戶,Openstack最常見(jiàn)的問(wèn)題是當(dāng)啟動(dòng)一個(gè)實(shí)例,未能設(shè)置適當(dāng)?shù)陌踩M,之后后無(wú)法訪問(wèn)網(wǎng)絡(luò)上的實(shí)例。 安全組是一組應(yīng)用于一個(gè)實(shí)例的網(wǎng)絡(luò)的IP過(guò)濾規(guī)則,是基于具體項(xiàng)目的,項(xiàng)目成員可以編輯默認(rèn)的規(guī)則,或?qū)λ麄兘M添加新規(guī)則。所有的項(xiàng)目如果沒(méi)有其他安全組定義,都有一個(gè)“默認(rèn)”安全組,并將其應(yīng)用于實(shí)例。(除非改變了這個(gè)安全組,阻擋所有的進(jìn)入流量?)。 nova.conf 文件中的選項(xiàng) allow_same_net_traffic (缺省為true) 是在全局范圍內(nèi),控制規(guī)則是否適用于共享一個(gè)網(wǎng)絡(luò)的主機(jī)群。當(dāng)設(shè)置為true,在同一子網(wǎng)主機(jī)之間可以相互傳送所有類型數(shù)據(jù),沒(méi)有經(jīng)過(guò)過(guò)濾。在Flat模式的網(wǎng)絡(luò),這使得所有項(xiàng)目中的所有實(shí)例可以未過(guò)濾的相互通信。在VLAN模式網(wǎng)絡(luò),在同一個(gè)項(xiàng)目允許實(shí)例相互訪問(wèn)。如果 allow_same_net_traffic 被設(shè)置為false, 安全組被部署到所有的連接,在這種情況下,還是可以模擬出 為true的效果,那就是配置缺省安全組為全部通過(guò)。 當(dāng)前項(xiàng)目的安全組在dashboard的“訪問(wèn)與安全”部分找到。 為查看一個(gè)安全組的細(xì)節(jié),在安全組下選擇“編輯”。顯然,可以從這個(gè)界面修改安全組。另外在主訪問(wèn)&安全頁(yè)面有一個(gè)“創(chuàng)建安全組”按鈕來(lái)創(chuàng)建新組。– 我們這里討論中使用的術(shù)語(yǔ),與命令行的術(shù)語(yǔ)相同。 以下命令顯示在當(dāng)前項(xiàng)目中的安全組列表:

$ nova secgroup-list +———+————-+ | Name | Description | +———+————-+ | default | default | | open | all ports | +———+————-+

查看一個(gè)叫‘open’的安全組:

$ nova secgroup-list-rules open +————-+———–+———+———–+————–+

IP Protocol | From Port | To Port | IP Range | Source Group |

icmp tcp udp-1 1 1255 65535 655350.0.0.0/0 0.0.0.0/0 0.0.0.0/0

解釋:所有的規(guī)則都是“允許(allow)”,因?yàn)槿笔《际恰熬芙^(deny)”。第一列是IP協(xié)議 (icmp, tcp, 或 udp) 第二列和第三列描述端口號(hào)范圍。第四列用CIDR格式描述IP地址范圍。這個(gè)例子中描述允許所有IP的所有端口。 在前面章節(jié)中介紹過(guò),規(guī)則的條數(shù)是quota_security_group_rules被控制的,而每個(gè)項(xiàng)目的安全組數(shù)是被quota_security_groups quota 控制的。 當(dāng)增加一個(gè)安全組時(shí),應(yīng)該用一個(gè)簡(jiǎn)單又有解釋性的名字。因?yàn)槊謺?huì)在被使用的實(shí)例中顯示但附帶說(shuō)明不會(huì)顯示。比如一個(gè)安全組名字為‘http’ 會(huì)比較好,但‘張三的組’或‘組1’則不好理解。 作為例子,我們創(chuàng)建一個(gè)安全組,允許所有的從任何地方的web 流量能連接internet。 稱之為 “global_http”,意思為任何地方倒internet的web流量,容易理解。 +————-+————————————-+ | Name | Description | +————-+————————————-+ | global_http | allow web traffic from the internet | +————-+————————————-+ 用以下命令增加規(guī)則:

$ nova secgroup-add-rule     $ nova secgroup-add-rule global_http tcp 80 80 0.0.0.0/0 +————-+———–+———+———–+————–+ | IP Protocol | From Port | To Port | IP Range | Source Group | +————-+———–+———+———–+————–+ | tcp | 80 | 80 | 0.0.0.0/0 | | +————-+———–+———+———–+————–+

注意:這里的‘from-port’ 和 ‘to-port’并非源端口和目的端口,而是端口的范圍。復(fù)雜的規(guī)則可以通過(guò)多條規(guī)則實(shí)現(xiàn)。例如:如果想允許http 和 https 流量:

$ nova secgroup-add-rule global_http tcp 443 443 0.0.0.0/0 +————-+———–+———+———–+————–+ | IP Protocol | From Port | To Port | IP Range | Source Group | +————-+———–+———+———–+————–+ | tcp | 443 | 443 | 0.0.0.0/0 | | +————-+———–+———+———–+————–+

增加上一條之后,規(guī)則變?yōu)椋?/p>

$ nova secgroup-list-rules global_http +————-+———–+———+———–+————–+ | IP Protocol | From Port | To Port | IP Range | Source Group | +————-+———–+———+———–+————–+ | tcp | 80 | 80 | 0.0.0.0/0 | | | tcp | 443 | 443 | 0.0.0.0/0 | | +————-+———–+———+———–+————–+

反方向操作是secgroup-delete-rule,同樣的格式。如果想刪除整個(gè)安全組可以用:secgroup-delete. 為一個(gè)實(shí)例的集群創(chuàng)建安全組: SourceGroups 采用動(dòng)態(tài)的模式定義CIDR 可訪問(wèn)資源。一個(gè)用戶設(shè)置一個(gè)SourceGroup (有安全組名字), 所有此用戶在其他的實(shí)例上可以動(dòng)態(tài)選擇使用這個(gè)SourceGroup。 這種方式減輕了每個(gè)新用戶需要一個(gè)新的規(guī)則的麻煩。使用方式: usage: nova secgroup-add-group-rule $ nova secgroup-add-group-rule cluster global-http tcp 22 22 “cluster” 規(guī)則允許所有使用‘global-http’的實(shí)例能通過(guò)ssh 訪問(wèn)。

塊存儲(chǔ)

連接: 塊存儲(chǔ)創(chuàng)建失敗 OpenStack卷是持久的塊存儲(chǔ)設(shè)備,可以附加到實(shí)例或分離,但同時(shí)只能連接到一個(gè)實(shí)例,類似于一個(gè)外部硬盤(pán),不象網(wǎng)絡(luò)文件系統(tǒng)或?qū)ο蟠鎯?chǔ)那樣提供共享存儲(chǔ)方式。塊存儲(chǔ)讓實(shí)例中的操作系統(tǒng)把文件系統(tǒng)加載和安裝到塊設(shè)備。 類似于其他可移動(dòng)磁盤(pán)技術(shù),重要的是操作系統(tǒng)不能利用磁盤(pán),然后馬上移掉它,數(shù)據(jù)容易出問(wèn)題。在Linux實(shí)例中任何文件系統(tǒng)在硬件移除前需要從卷中卸載。OpenStack volume 服務(wù)不知道從一個(gè)實(shí)例中移除卷是否安全,因此只能根據(jù)指令去做。如果用戶告訴volume服務(wù)從一個(gè)實(shí)例卸載卷,而這個(gè)卷正在被寫(xiě)入,可以想象文件系統(tǒng)肯定會(huì)有某種程度的損壞,不管是什么進(jìn)程在用這個(gè)卷。 OpenStack沒(méi)有涉及實(shí)例操作系統(tǒng)在訪問(wèn)塊設(shè)備時(shí)需要的步驟等等相關(guān)規(guī)則。 所涉及到的只有如何創(chuàng)建卷并將其掛載到實(shí)例或卸載。這些操作可以在dashboard的‘卷(volume)’頁(yè)面中找到,或用cinder命令行客戶端。 為了增加一個(gè)卷只需要名字和卷大?。℅B),將其輸入到‘創(chuàng)建卷’菜單,或者用命令行方式: $ cinder create –display-name test-volume 10 創(chuàng)建了一個(gè)人名為‘test-volume’的卷,10GB。列出已存在的卷和所連接的實(shí)例(如果有):

$ cinder list +————+———+——————–+——+————-+————-+ | ID | Status | Display Name | Size | Volume Type | Attached to | +————+———+——————–+——+————-+————-+ | 0821...19f | active | test-volume | 10 | None | | +————+———+——————–+——+————-+————-+

塊存儲(chǔ)服務(wù)還允許創(chuàng)建快照。記住這是塊級(jí)別的快照,最好在卷沒(méi)有連接到實(shí)例的時(shí)候進(jìn)行快照,或者卷沒(méi)有被加載或使用的時(shí)候做。 如果在卷被頻繁使用的時(shí)候做,可能得到的是一個(gè)不一致的文件系統(tǒng)。 實(shí)際上,缺省情況下,volume卷服務(wù)在卷被加載時(shí)不做快照,–你可以強(qiáng)迫它做。為了創(chuàng)建快照,一種方式是在dashboard的卷頁(yè)面選擇“創(chuàng)建快照”,或使用命令行:

usage: cinder snapshot-create [–force ] [–display-name ] [–display-description 

Positional arguments: ID of the volume to snapshot Optional arguments: –force Optional flag to indicate whether to snapshot a volume even if its attached to an instance. (Default=False) –display-name Optional snapshot name. (Default=None) –display-description Optional snapshot description. (Default=None)  塊存儲(chǔ)創(chuàng)建失敗 如果用戶試圖創(chuàng)建卷時(shí)馬上進(jìn)入一個(gè)錯(cuò)誤狀態(tài),查錯(cuò)最好的辦法是基于卷的UUID 來(lái)查詢(grep) cinder的log文件。首先嘗試云控制器上的日志文件,然后試所要?jiǎng)?chuàng)建卷的存儲(chǔ)節(jié)點(diǎn): # grep 903b85d0-bacc-4855-a261-10843fc2d65b /var/log/cinder/*.log

實(shí)例 啟動(dòng)實(shí)例 實(shí)例啟動(dòng)失敗 實(shí)例特性數(shù)據(jù)

實(shí)例是在一個(gè)OpenStack云運(yùn)行的虛擬機(jī)。本節(jié)討論如何操作實(shí)例,相關(guān)鏡像,網(wǎng)絡(luò)特性,以及如何在數(shù)據(jù)庫(kù)中顯示的。 啟動(dòng)實(shí)例:為了發(fā)起一個(gè)實(shí)例,需要選擇一個(gè)鏡像,一個(gè)類型模型,和一個(gè)名字。 名字不一定需要唯一,但如果是唯一的話,你的日子會(huì)好過(guò)很多,因?yàn)楹芏喙ぞ哂玫矫执鎁UID。 發(fā)起實(shí)例可以通過(guò)dashboard的“實(shí)例”頁(yè)面的“發(fā)起實(shí)例(launch instance)”按鈕,然后到選擇鏡像和快照頁(yè)面。 命令行模式:$ nova boot –flavor –image 這里有些選項(xiàng)。在啟動(dòng)實(shí)例之前最好讀完本節(jié),這是最基本的命令。 $ nova delete 要注意, 將一個(gè)實(shí)例關(guān)閉電源(關(guān)機(jī))并不代表這個(gè)實(shí)例在openstack中被去除。  實(shí)例啟動(dòng)失敗 如果一個(gè)實(shí)例不能啟動(dòng)并馬上進(jìn)入”Error” 狀態(tài),有幾種方式來(lái)排查故障。有些只需普通用戶權(quán)限有些需要能login到log服務(wù)器或計(jì)算節(jié)點(diǎn)。 不能啟動(dòng)最通常的原因, 是對(duì)配額的分配使系統(tǒng)中沒(méi)有合適的計(jì)算節(jié)點(diǎn)滿足實(shí)例要求。這種情況下可以用nova show 命令來(lái)查看,錯(cuò)誤信息如下:

 $ nova show test-instance +————————+————————————————————–| Property | Value / +————————+————————————————————–| OS-DCF:diskConfig | MANUAL / | OS-EXT-STS:power_state | 0 | OS-EXT-STS:task_state | None / | OS-EXT-STS:vm_state | error | accessIPv4 | / | accessIPv6 | | config_drive | / | created | 2013-03-01T19:28:24Z | fault | {u’message’: u’NoValidHost’, u’code’: 500, u’created’: u‘2013/ | flavor | xxl.super (11) | hostId | / | id | 940f3b2f-bd74-45ad-bee7-eb0a7318aa84 | image | quantal-test (65b4f432-7375-42b6-a9b8-7f654a1e676e) / | key_name | None | metadata | {} / | name | test-instance | security_groups | [{u’name’: u’default’}] / | status | ERROR | tenant_id | 98333a1a28e746fa8c629c83a818ad57 / | updated | 2013-03-01T19:28:26Z | user_id | a1ef823458d24a68955fec6f3d390019 / +————————+————————————————————–

在本例子中看到錯(cuò)誤信息顯示為 NoValidHost 表明調(diào)度器無(wú)法滿足實(shí)例的需求。 如果nova show 顯示的信息不夠,可以搜索相關(guān)計(jì)算節(jié)點(diǎn)的nova-compute.log文件中的內(nèi)容,用實(shí)例的UUID檢索。或者調(diào)度服務(wù)器上的nova-scheduler.log,這些都能提供底層的錯(cuò)誤信息。 作為管理員用 nova show 命令會(huì)顯示實(shí)例所在的計(jì)算節(jié)點(diǎn)的HostID 。但如果實(shí)例沒(méi)有被調(diào)度成功,則沒(méi)有這個(gè)ID。  實(shí)例特性數(shù)據(jù) 有各種各樣的方法來(lái)注入定制化的數(shù)據(jù)包括用戶數(shù)據(jù),元數(shù)據(jù)服務(wù),授權(quán)密鑰(authorized_keys)注入,和文件注入。 澄清用戶數(shù)據(jù)與元數(shù)據(jù)的區(qū)別: “用戶數(shù)據(jù)”是一部分?jǐn)?shù)據(jù),在實(shí)例沒(méi)有運(yùn)行時(shí)設(shè)置。這個(gè)用戶數(shù)據(jù)可以在實(shí)例運(yùn)行中存取和使用。人們使用這個(gè)用戶數(shù)據(jù)來(lái)存儲(chǔ)配置,腳本,或其他的數(shù)據(jù),如果租戶想要的話。 而元數(shù)據(jù),是與實(shí)例相關(guān)聯(lián)的一組 鍵/值(key/value)。在實(shí)例存在期間,當(dāng)用戶通過(guò)Compute API 發(fā)出指令時(shí),nova-compute從實(shí)例的內(nèi)部或外部來(lái)讀寫(xiě)這些鍵/值。但是,你不能通過(guò)與EC2元數(shù)據(jù)服務(wù)兼容的方式來(lái)直接查詢?cè)獢?shù)據(jù)。 用戶可以通過(guò)nova命令生成和注冊(cè)ssh 密鑰:

$ nova keypair-add mykey > mykey.pem

這生成了一個(gè)名字為mykey的密鑰,可以關(guān)聯(lián)到實(shí)例上。mykey.pem 文件是私鑰,需要保存到一個(gè)安全的地方,因?yàn)樗试S以root的用戶訪問(wèn)與其關(guān)聯(lián)的實(shí)例。 你可以用以下命令注冊(cè)一個(gè)公鑰: $ nova keypair-add –pub-key mykey.pub mykey 你必須有相對(duì)應(yīng)的私鑰來(lái)訪問(wèn)和此公鑰相關(guān)聯(lián)的實(shí)例。 在一個(gè)實(shí)例啟動(dòng)時(shí)關(guān)聯(lián)密鑰:在命令行增加 –key_name mykey:

$ nova boot –image ubuntu-cloudimage –flavor 1 –key_name mykey

當(dāng)啟動(dòng)一個(gè)服務(wù)器時(shí),可以加上元數(shù)據(jù),這樣就能更容易地分辨運(yùn)行的實(shí)例。 用 –meta 選項(xiàng),帶一個(gè) key=value 對(duì), 并確定這個(gè)鍵值對(duì)的定義。例如,可以增加一個(gè)描述:

$ nova boot –image=test-image –flavor=1 smallimage –meta description=’Small test image’

在實(shí)例信息中可以看到元數(shù)據(jù)的信息:

 $ nova show smallimage +————————+—————————————–+ | Property | Value | +————————+—————————————–+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-STS:power_state | 1 | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | accessIPv4 | | | accessIPv6 | | | config_drive | | | created | 2012-05-16T20:48:23Z | | flavor | m1.small | | hostId | de0...487 | | id | 8ec...f915 | | image | natty-image | | key_name | | | metadata | {u’description’: u’Small test image’} | | name | smallimage2 | | private network | 172.16.101.11 | | progress | 0 | | public network | 10.4.113.11 | | status | ACTIVE | | tenant_id | e83...482 | | updated | 2012-05-16T20:48:35Z | | user_id | de3...0a9 | +————————+—————————————–+

用戶數(shù)據(jù)是元數(shù)據(jù)服務(wù)里一個(gè)特殊的鍵,它持有一個(gè)文件,在本實(shí)例上的云應(yīng)用能訪問(wèn)。例如  cloudinit (https://help.ubuntu.com/community/CloudInit) 是一個(gè)開(kāi)源軟件包,在實(shí)例啟動(dòng)的時(shí)候可以使用這些用戶數(shù)據(jù)。 用戶數(shù)據(jù)的生成:可以在本地創(chuàng)建一個(gè)文件然后傳送給實(shí)例,在實(shí)例創(chuàng)建的時(shí)候,增加選項(xiàng): –user-data 。 舉例:

$ nova boot –image ubuntu-cloudimage –flavor 1 –user-data mydata.file

任意文件可以被放到實(shí)例的文件系統(tǒng),采用 –file 選項(xiàng)。 最多可以存放5個(gè)文件。 例如有一個(gè)特殊授權(quán)密鑰文件名字為:special_authorized_keysfile , 要放到實(shí)例中代替通常的ssh密鑰注入,可以用以下名利:

$ nova boot –image ubuntu-cloudimage –flavor 1 –file /root/.ssh/authorized_keys=special_authorized_keysfile

關(guān)聯(lián)安全組

如前面所講,如果允許網(wǎng)絡(luò)流量到實(shí)例,安全組的配置是需要的,除非缺省安全組已經(jīng)被配置了允許流量通過(guò)。 添加安全組通常在實(shí)例啟動(dòng)時(shí)做。在dashboard上這部分在“訪問(wèn)與安全”選項(xiàng)卡的“啟動(dòng)實(shí)例”對(duì)話框。在命令行啟動(dòng)方式下, 增加安全組用 –security-groups 選項(xiàng), 并用逗號(hào)分隔一組安全組。 還可以在實(shí)例運(yùn)行的時(shí)候增加安全組。目前此功能只能在命令行方式下做。

$ nova add-secgroup   $ nova remove-secgroup  

Floating IPs 前面介紹過(guò),項(xiàng)目有一個(gè)配額來(lái)控制floating ip的數(shù)量,但是這些在可以使用之前需要被一個(gè)用戶分配好。分配一個(gè)floating IP到項(xiàng)目是通過(guò)dashboard “訪問(wèn)與安全”頁(yè)面里的 “分配IP項(xiàng)目” 按鈕, 或在命令行上使用: $ nova floating-ip-create 一旦被分配, floating ip 可以被設(shè)置到運(yùn)行實(shí)例中,通過(guò)dashboard, 一種方式是在“訪問(wèn)與安全”頁(yè)面里的IP 操作的 “設(shè)置IP項(xiàng)目” 按鈕,或者在“實(shí)例”頁(yè)面中對(duì)應(yīng)實(shí)例的相關(guān)按鈕。相反操作“floating ip去關(guān)聯(lián)” , 只在“訪問(wèn)與安全”頁(yè)面里可以操作。 命令行的方式中,下列命令完成以上任務(wù):

$ nova add-floating-ip  
 $ nova remove-floating-ip  

加載塊存儲(chǔ)

可以在dashboard的“卷”頁(yè)面上為實(shí)例加載塊存儲(chǔ)。點(diǎn)擊“編輯加載”選擇加載哪個(gè)卷。 在命令行中,可以:

$ nova volume-attach  

還可以用命令行在實(shí)例啟動(dòng)的時(shí)候指定塊設(shè)備,命令如下:

–block-device-mapping 

塊設(shè)備 mapping的格式是: :::,這里dev-name 卷所加載的設(shè)備名稱:/dev/dev_name。id 卷啟動(dòng)的ID,會(huì)在 nova volume-list 的輸出中看到。 Type 或是 snap,表示卷是從一個(gè)快照建立的,或其他類型(空字符串都可以)。在上面例子中,卷并非由快照建立的,因此下面的顯示為空。 size (GB) 卷大?。℅B)。也可以不填,讓計(jì)算服務(wù)決定大小。 delete-on-terminate 布爾值, 表明在實(shí)例被刪除后卷是否被刪除。 True 為1, False為0。 如果原來(lái)就有一個(gè)塊存儲(chǔ)上有啟動(dòng)文件的,甚至可以直接從塊存儲(chǔ)上啟動(dòng)實(shí)例。下面例子中會(huì)嘗試從ID=13的卷中啟動(dòng),這個(gè)卷不會(huì)被刪除。 –key-name 要改為正確的密鑰。

$ nova boot –flavor 2 –key-name mykey –block-device-mapping vda=13:::0 boot-from-vol-test

因?yàn)閎ug 1163566 (https://bugs.launchpad.net/nova/+bug/1163566) 在horizon中你必須選擇一個(gè)鏡像來(lái)啟動(dòng),雖然這個(gè)鏡像你沒(méi)有用。 為了正常從一個(gè)鏡像啟動(dòng)并加載塊存儲(chǔ),不要將設(shè)備映射到vda。

制作快照

保證快照的一致性 OpenStack的快照機(jī)制允許你從一臺(tái)運(yùn)行的實(shí)例中創(chuàng)建鏡像。這使得對(duì)基礎(chǔ)鏡像的升級(jí)或做定制修改變得非常容易。 為一個(gè)正在運(yùn)行的實(shí)例做鏡像可以用命令:

$ nova image-create   Dashboard

上面關(guān)于鏡像的接口有些清晰,因?yàn)樗鼈儗⒖煺枕?yè)面分在三個(gè)部分:鏡像、實(shí)例快照、卷快照。但是,實(shí)例快照是一個(gè)鏡像??煺甄R像和從網(wǎng)上下載的原始鏡像的唯一區(qū)別就是快照鏡像在glance數(shù)控庫(kù)中有附加的屬性,這些屬性可以在image_properties 表中找到,包括:屬性 值 image_type 快照 instance_uuid <被快照的實(shí)例的uuid > base_image_ref <被快照的卷的uuid > image_location 快照  保證快照一致性。

本節(jié)內(nèi)容來(lái)自 Sébastien Han’s OpenStack: Perform Consistent Snapshots blog entry (http://www.sebastien-han.fr/blog/2012/12/10/openstack-perform-consistent-snapshots/)

快照抓取的是文件系統(tǒng)的狀態(tài),而非內(nèi)存的狀態(tài)。因此為了保證快照包括所需要的信息,要運(yùn)行的程序?qū)?shù)據(jù)寫(xiě)到磁盤(pán)上。文件系統(tǒng)不能有‘臟’緩存數(shù)據(jù):當(dāng)程序要求寫(xiě)磁盤(pán)時(shí),系統(tǒng)還沒(méi)寫(xiě)完。 為了確保重要內(nèi)容寫(xiě)到磁盤(pán)(例如,數(shù)據(jù)庫(kù)),我們建議您閱讀對(duì)于那些應(yīng)用程序的命令文檔來(lái)確定他們的內(nèi)容同步到磁盤(pán)。如果你不確定如何做到這一點(diǎn),最安全的方法是簡(jiǎn)單地正常停止這些服務(wù)運(yùn)行。 為解決‘臟’緩存數(shù)據(jù)問(wèn)題,我們還建議在做快照前用sync命令。 # sync 運(yùn)行sync寫(xiě)臟緩沖區(qū)(緩沖塊已修改但還沒(méi)有寫(xiě)到磁盤(pán)塊)到磁盤(pán)。 只運(yùn)行sync命令還不足以保證文件系統(tǒng)的一致性。建議用fsfreeze 工具,可以阻止對(duì)文件系統(tǒng)的新的訪問(wèn),以建立一個(gè)適合做鏡像的文件系統(tǒng)。fsfreeze 支持幾種文件系統(tǒng), ext3, ext4, 和 XFS. 如果你的系統(tǒng)是在ubuntu上的,安裝 util-linux 包以得到 fsfreeze:

# apt-get install util-linux

如果你的操作系統(tǒng)沒(méi)有一個(gè)版本的fsfreeze可用,您可以使用xfs_freez代替,可以在Ubuntu的xfsprogs包找到。盡管是“xfs”的名字,xfs_freez也適用在ext3和ext4,如果您使用的是Linux內(nèi)核版本2.6.29或更新的情況下。Xfs_freez 支持相同的命令行參數(shù)fsfreeze一樣。 例如需要對(duì)一個(gè)持久的塊存儲(chǔ)卷做快照,客戶機(jī)操作系統(tǒng)探測(cè)到的/ dev /vdb 掛載到 /mnt。fsfreeze命令接受2個(gè)參數(shù): -f: freeze the system -u: un-freeze the system 為了凍結(jié)一個(gè)卷,作為root用戶: # fsfreeze -f /mnt 卷必須被掛載才能被凍結(jié)。 當(dāng)“fsfreeze - f”命令發(fā)出,在文件系統(tǒng)所有正在進(jìn)行中的事務(wù)被允許完成,新寫(xiě)系統(tǒng)的調(diào)用被阻止,以及其他修改文件系統(tǒng)的調(diào)用都停止了。最重要的是,所有的臟數(shù)據(jù)、元數(shù)據(jù)和日志信息被寫(xiě)入到磁盤(pán)。 一旦卷已被凍結(jié),不要試圖讀或?qū)?,因?yàn)檫@些操作會(huì)掛起。 操作系統(tǒng)停止每個(gè)I / O操作和任何I / O的嘗試被延遲,直到文件系統(tǒng)被解凍。 一旦你已經(jīng)執(zhí)行了fsfreeze命令,就可以安全的執(zhí)行快照。例如,如果您的實(shí)例被命名為mon-instance,你用快照得到一個(gè)鏡像,名字叫mon-snapshot,命令如下:

$ nova image-create mon-instance mon-snapshot

當(dāng)快照已經(jīng)完成,可以用下面的命令解凍文件系統(tǒng),在實(shí)例中用root用戶: # fsfreeze -u /mnt 如果你想備份根文件系統(tǒng),您不能簡(jiǎn)單地執(zhí)行上面的命令,因?yàn)樗鼤?huì)凍結(jié)提示。而是運(yùn)行下面的命令:

# fsfreeze -f / && sleep 30 && fsfreeze -u /

實(shí)例在數(shù)據(jù)庫(kù)中的信息 實(shí)例信息存儲(chǔ)在幾個(gè)數(shù)據(jù)庫(kù)表中,表操作者最可能需要查看的是‘實(shí)例instanse’表。 實(shí)例表 帶有正在運(yùn)行或被刪除的實(shí)例的幾乎所有的信息。如果詳細(xì)地看,它有很復(fù)雜的字段,都我我我在是操作者查詢信息所需要的。 實(shí)例已被刪除時(shí)“delete”字段設(shè)置為“1”, 如果沒(méi)有刪除為NULL。這對(duì)于實(shí)例的查詢是非常重要的。 “uuid”字段是實(shí)例的uuid,作為外鍵用于在整個(gè)數(shù)據(jù)庫(kù)中其他的表。這個(gè)id還在日志、dashboard和命令行工具等里面來(lái)唯一地標(biāo)識(shí)一個(gè)實(shí)例。 通過(guò)一組外鍵可以找到實(shí)例之間的關(guān)系。最有用的是“user_id”和“項(xiàng)目id”,它們是創(chuàng)建實(shí)例的用戶的和其所在項(xiàng)目的uuid。 “hostname” 字段表示實(shí)例是在哪個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行?!眃isplay-name”與”host”名字相同,可以用nova rename命令修改。 還有一些時(shí)間相關(guān)字段,可以在一個(gè)實(shí)例狀態(tài)發(fā)生改變時(shí)用于跟蹤:

created_at updated_at deleted_at scheduled_at launched_at terminated_at

關(guān)于OpenStack中怎么面向用戶的操作就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


本文標(biāo)題:OpenStack中怎么面向用戶的操作
文章出自:http://weahome.cn/article/ishesh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部