1. 程式人生 > >Nova建立虛擬機器(指定IP地址和生成節點)

Nova建立虛擬機器(指定IP地址和生成節點)

1. 背景需求

  在openstack中,nova負責openstack虛擬機器的生命週期的管理,neutron則負責虛擬機器的網路管理工作,預設情況下,建立一臺虛擬機器,nova會根據nova-scheduler排程演算法,選擇一臺最合適的compute節點,同時會從neutron的地址池中分配一個ip地址給虛擬機器,從而完成虛擬機器的建立過程。

  然而,在一些特殊的場景中,如相同業務的虛擬機器,希望落在不通的compute節點上,為虛擬機器分配原有的ip地址,此時通過nova內建的排程是難以實現的,或者在一些應用場景,基於企業的CMDB聯動,讓相同業務的虛擬機器,散落在openstack nova中的不同節點,從而減小down機的機率,減少故障的發生。本文以在指定的compute節點建立instance,併為其分配一個固定的ip地址為例。

2. 獲取建立instance的基本資訊

  1. 獲取映象image id

1234567[[email protected] ~]# glance image-list+--------------------------------------+--------------------------+-------------+------------------+-------------+--------+| ID                                   | Name                     | Disk Format | Container Format | Size        | Status |
+--------------------------------------+--------------------------+-------------+------------------+-------------+--------+| 37aaedc7-6fe6-4fc8-b110-408d166b8e51 | cirrors                  | qcow2       | bare             | 13200896    | active |    #需要建立instance的image id| ff0f7d03-a553-4357-a819-c74e913d649f | win2k8                   | qcow2       | bare             | 3391881216  | active |
+--------------------------------------+--------------------------+-------------+------------------+-------------+--------+

2. 獲取套餐flavor id

123456[[email protected] ~]# nova flavor-list+--------------------------------------+------------------+-----------+------+-----------+------+-------+-------------+-----------+| ID                                   | Name             | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |+--------------------------------------+------------------+-----------+------+-----------+------+-------+-------------+-----------+| 1                                    | m1.large         | 8192      | 100  | 10        |      | 4     | 1.0         | True      || 10                                   | V.GF1            | 8192      | 10   | 0         |      | 4     | 1.0         | True      |    #需要建立的flavor id

3. 獲取安全組id

123456[[email protected] ~]# nova secgroup-list+--------------------------------------+---------+-------------+| Id                                   | Name    | Description |+--------------------------------------+---------+-------------+| 663468d9-73b1-4b04-8d4c-dac1bf21a94d | default default     |        #secgroup的id號碼+--------------------------------------+---------+-------------+

4. 獲取keypair

123456[[email protected] ~]# nova keypair-list+------+-------------------------------------------------+| Name | Fingerprint                                     |+------+-------------------------------------------------+| KEY  | 15:63:f2:de:74:53:a1:03:eb:36:27:e6:d9:00:41:22 |        #keypair的名字+------+-------------------------------------------------+

5. 獲取neutron網路id號碼

123456[[email protected] ~]# neutron net-list+--------------------------------------+---------------+-------------------------------------------------------+| id                                   | name          | subnets                                               |+--------------------------------------+---------------+-------------------------------------------------------+| 99c68a93-336a-4605-aa78-343d41ca1206 | vmTest        | 79cb82a1-eac1-4311-8e6d-badcabd22e44 192.168.100.0/24 |    #需要啟動的網路id號+--------------------------------------+---------------+-------------------------------------------------------+

6. 獲取coompute的主機名和zone名稱

12345678910[[email protected] ~]# nova service-list+------------------+-------------------------+-------------------+---------+-------+----------------------------+-----------------+| Binary           | Host                    | Zone              | Status  | State | Updated_at                 | Disabled Reason |+------------------+-------------------------+-------------------+---------+-------+----------------------------+-----------------+| nova-conductor   | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-23T04:54:58.000000 | -               || nova-cert        | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-23T04:54:52.000000 | -               || nova-consoleauth | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-23T04:54:57.000000 | -               || nova-scheduler   | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-23T04:54:57.000000 | -               || nova-compute     | ChuangYiYuan_10_16_2_11 | ChuangYiYuanZone1 | enabled | up    | 2016-01-23T04:54:56.000000 | -               |    #需要啟動的compute節點| nova-compute     | ChuangYiYuan_10_16_2_14 | ChuangYiYuanZone1 | enabled | up    | 2016-01-23T04:54:56.000000 | -               |

3. 在指定的compute節點啟動虛擬機器,並指定固定ip地址

123456789101112131415161718192021222324252627282930313233343536373839[[email protected] ~]# nova boot --flavor 10  \            #flavor名字--image 37aaedc7-6fe6-4fc8-b110-408d166b8e51 \            #映象id   --key-name  KEY  \                         #KEY名字--availability-zone ChuangYiYuanZone1:ChuangYiYuan_10_16_2_11  \   #在制定的區域和主機名啟動instance--security-groups 663468d9-73b1-4b04-8d4c-dac1bf21a94d  \      #安全組--nic net-id=99c68a93-336a-4605-aa78-343d41ca1206,v4-fixed-ip=192.168.100.200 happyblog_blog_51cto_com    #指定網路和IP地址+--------------------------------------+------------------------------------------------+| Property                             | Value                                          |+--------------------------------------+------------------------------------------------+| OS-DCF:diskConfig                    | MANUAL                                         || OS-EXT-AZ:availability_zone          | nova                                           || OS-EXT-SRV-ATTR:host                 | -                                              || OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                              || OS-EXT-SRV-ATTR:instance_name        | instance-000001f9                              || OS-EXT-STS:power_state               | 0                                              || OS-EXT-STS:task_state                | scheduling                                     || OS-EXT-STS:vm_state                  | building                                       || OS-SRV-USG:launched_at               | -                                              || OS-SRV-USG:terminated_at             | -                                              || accessIPv4                           |                                                || accessIPv6                           |                                                || adminPass                            | 4T3vpfaXPTZe                                   || config_drive                         |                                                || created                              | 2016-01-23T04:44:51Z                           || flavor                               | V.GF1 (10)                                     || hostId                               |                                                || id                                   | 3f694eaf-aa87-456a-99ce-90dd9f4e45ee           || image                                | cirrors (37aaedc7-6fe6-4fc8-b110-408d166b8e51) || key_name                             | KEY                                            || metadata                             | {}                                             || name                                 | happyblog_blog_51cto_com                       || os-extended-volumes:volumes_attached | []                                             || progress                             | 0                                              || security_groups                      | 663468d9-73b1-4b04-8d4c-dac1bf21a94d           || status                               | BUILD                                          || tenant_id                            | 842ab3268a2c47e6a4b0d8774de805ae               || updated                              | 2016-01-23T04:44:52Z                           || user_id                              | bc5e46fc4204497185ae3ca6f8b7affb               |+--------------------------------------+------------------------------------------------+

校驗配置情況

123456789101112131415161718192021222324252627282930313233343536[[email protected] ~]# nova list | grep 3f694eaf-aa87-456a-99ce-90dd9f4e45ee| 3f694eaf-aa87-456a-99ce-90dd9f4e45ee | happyblog_blog_51cto_com | ACTIVE | -          | Running     | vmTest=192.168.100.200   | ChuangYiYuan_10_16_2_11 |[[email protected] ~]# nova show 3f694eaf-aa87-456a-99ce-90dd9f4e45ee       +--------------------------------------+----------------------------------------------------------+| Property                             | Value                                                    |+--------------------------------------+----------------------------------------------------------+| OS-DCF:diskConfig                    | MANUAL                                                   || OS-EXT-AZ:availability_zone          | ChuangYiYuanZone1                                        || OS-EXT-SRV-ATTR:host                 | ChuangYiYuan_10_16_2_11                                  |    #指定的compute節點| OS-EXT-SRV-ATTR:hypervisor_hostname  | ChuangYiYuan_10_16_2_11                                  || OS-EXT-SRV-ATTR:instance_name        | instance-000001f9                                        || OS-EXT-STS:power_state               | 1                                                        || OS-EXT-STS:task_state                | -                                                        || OS-EXT-STS:vm_state                  | active                                                   || OS-SRV-USG:launched_at               | 2016-01-23T04:45:06.000000                               || OS-SRV-USG:terminated_at             | -                                                        || accessIPv4                           |                                                          || accessIPv6                           |                                                          || config_drive                         |                                                          || created                              | 2016-01-23T04:44:51Z                                     || flavor                               | V.GF1 (10)                                               || hostId                               | b3a37b586ae2847a0b18c58ff7693b41762fa0bf6a3cc363c862761a || id                                   | 3f694eaf-aa87-456a-99ce-90dd9f4e45ee                     || image                                | cirrors (37aaedc7-6fe6-4fc8-b110-408d166b8e51)           || key_name                             | KEY                                                      || metadata                             | {}                                                       || name                                 | happyblog_blog_51cto_com                                 || os-extended-volumes:volumes_attached | []                                                       || progress                             | 0                                                        || security_groups                      | default                                                  || status                               | ACTIVE                                                   || tenant_id                            | 842ab3268a2c47e6a4b0d8774de805ae                         || updated                              | 2016-01-23T04:45:07Z                                     || user_id                              | bc5e46fc4204497185ae3ca6f8b7affb                         || vmTest network                       | 192.168.100.200                                          |    #指定的ip地址,good,完成+--------------------------------------+----------------------------------------------------------+

4. 總結

以上方法用於openstack的日常運維中,一般而言,不建議使用,建議使用nova內建的排程演算法來完成。本人在實際的工作中,經常有指定compute機器和指定ip的需求。

5. 附錄

  附錄提供了nova boot用法相關的引數

[[email protected] ~]# nova help boot

usage: nova boot [–flavor <flavor>] [–image <image>]

                 [–image-with <key=value>] [–boot-volume <volume_id>]

                 [–snapshot <snapshot_id>] [–num-instances <number>]

                 [–meta <key=value>] [–file <dst-path=src-path>]

                 [–key-name <key-name>] [–user-data <user-data>]

                 [–availability-zone <availability-zone>]

                 [–security-groups <security-groups>]

                 [–block-device-mapping <dev-name=mapping>]

                 [–block-device key1=value1[,key2=value2…]]

                 [–swap <swap_size>]

                 [–ephemeral size=<size>[,format=<format>]]

                 [–hint <key=value>]

                 [–nic <net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid>]

                 [–config-drive <value>] [–poll]

                 <name>

Boot a new server.

Positional arguments:

  <name>                Name for the new server

Optional arguments:

  –flavor <flavor>     Name or ID of flavor (see ‘nova flavor-list’).

  –image <image>       Name or ID of image (see ‘nova image-list’).

  –image-with <key=value>

                        Image metadata property (see ‘nova image-show’).

  –boot-volume <volume_id>

                        Volume ID to boot from.

  –snapshot <snapshot_id>

                        Snapshot ID to boot from (will create a volume).

  –num-instances <number>

                        boot multiple servers at a time (limited by quota).

  –meta <key=value>    Record arbitrary key/value metadata to /meta.js on the

                        new server. Can be specified multiple times.

  –file <dst-path=src-path>

                        Store arbitrary files from <src-path> locally to <dst-

                        path> on the new server. You may store up to 5 files.

  –key-name <key-name>

                        Key name of keypair that should be created earlier

                        with the command keypair-add

  –user-data <user-data>

                        user data file to pass to be exposed by the metadata

                        server.

  –availability-zone <availability-zone>

                        The availability zone for server placement.

  –security-groups <security-groups>

                        Comma separated list of security group names.

  –block-device-mapping <dev-name=mapping>

                        Block device mapping in the format <dev-

                        name>=<id>:<type>:<size(GB)>:<delete-on-terminate>.

  –block-device key1=value1[,key2=value2…]

                        Block device mapping with the keys: id=image_id,

                        snapshot_id or volume_id, source=source type (image,

                        snapshot, volume or blank), dest=destination type of

                        the block device (volume or local), bus=device’s bus,

                        device=name of the device (e.g. vda, xda, …),

                        size=size of the block device in GB, format=device

                        will be formatted (e.g. swap, ext3, ntfs, …),

                        bootindex=integer used for ordering the boot disks,

                        type=device type (e.g. disk, cdrom, …) and

                        shutdown=shutdown behaviour (either preserve or

                        remove).

  –swap <swap_size>    Create and attach a local swap block device of

                        <swap_size> MB.

  –ephemeral size=<size>[,format=<format>]

                        Create and attach a local ephemeral block device of

                        <size> GB and format it to <format>.

  –hint <key=value>    Send arbitrary key/value pairs to the scheduler for

                        custom use.

  –nic <net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid>

                        Create a NIC on the server. Specify option multiple

                        times to create multiple NICs. net-id: attach NIC to

                        network with this UUID (required if no port-id), v4

                        -fixed-ip: IPv4 fixed address for NIC (optional),

                        port-id: attach NIC to port with this UUID (required

                        if no net-id)

  –config-drive <value>

                        Enable config drive

  –poll                Blocks while server builds so progress can be

                        reported.

本文出自 “Happy實驗室” 部落格,轉載請與作者聯絡!

相關推薦

Nova建立虛擬機器指定IP地址生成節點

1. 背景需求  在openstack中,nova負責openstack虛擬機器的生命週期的管理,neutron則負責虛擬機器的網路管理工作,預設情況下,建立一臺虛擬機器,nova會根據nova-scheduler排程演算法,選擇一臺最合適的compute節點,同時會從neutr

《轉》QEMU-KVM建立虛擬機器自動指定IP的配置

在使用qemu建立虛擬機器的過程中是無法指定IP地址的,可是在實際應用中,我們是需要虛擬機器擁有IP地址的,並且不是人為去虛擬機器作業系統上配置。在qemu虛擬機器技術文件(http://qemu.weilnetz.de/qemu-doc.html#pcsys_005fm

QEMU-KVM建立虛擬機器自動指定IP的配置

其實是可以的,你完全可以把兩臺電腦的IP 和MAC改成一樣,不但可以上網而且還沒IP衝突。這種方法不但可以突破路由封鎖用在ADSL共享上網,而且還可以用在IEEE802.1X認證上網的環境中,但是前提必須要用相同的帳號來撥號上網(前提認證伺服器沒設驗證帳號的重複性),我的機子是通過學校校園網接入interne

OpenStack之Nova分析——建立虛擬機器

上篇兩篇文章分析了Nova Scheduler服務,這篇文章我們繼續來分析建立虛擬機器的過程。先來回顧一下。 class FilterScheduler(driver.Scheduler): def scheduler_run_instance(self, cont

OpenStack之Nova分析——建立虛擬機器——建立虛擬機器映象檔案

虛擬機器的映象檔案主要是指磁碟映象檔案,當然有的還包括ramdisk和kernel映象來配合磁碟映象檔案使用,這篇文章我們來重點分析一下建立虛擬機器磁碟映象的整個過程。 虛擬機器磁碟映象是虛擬機器正常執行不可缺少的映象檔案,它是虛擬機器的主磁碟。先來概述一下建立虛擬機器磁碟

nova建立虛擬機器過程原始碼簡要分析

nova部署虛擬機器原始碼呼叫過程簡要分析,關於novaclient的程式處理流程暫時還沒有分析。後期如果有時間會進一步分析novaclient的程式執行過程,以及客戶端和服務之間的http請求響應關係。 nova/api/openstack/compute/

新建的虛擬機器無法分配IP地址及連外網

通過VmWare新建的虛擬機器無法連線外網 問題描述: 在通過VmWare建立Centos系統的虛擬機器(NAT)之後,登陸進去之後首先ipconfig命令無法檢視到自動分配的IP地址 在執行ping -c 3 www.baidu.com之後也提示ping: www.bai

伺服器建立虛擬機器並開啟ssh服務修改ip

我是通過VMware Workstation Pro 連線的公司伺服器,然後開始建立虛擬機器 然後就建立了一個Ubuntu系統的虛擬機器 首先,檢視是否有網路,開始安裝ssh服務,這樣就可以連線xshell遠端操作 安裝openssh-server。

linux虛擬機器配置靜態IP地址

在虛擬機器裡安裝了一個linux測試伺服器。因為公司內網中經常要登入這個伺服器測試網站。但是DHCP服務分配的IP地址經常變來變來。所以乾脆在網卡里寫個靜態IP地址。這樣就方便多了。 步驟: 1、配置/etc/sysconfig/network-scripts/ifcfg-eth0 裡的

CenterOS 7連線SecureCRT、為虛擬機器分配固定IP地址

一、連線網路 1、檢查是否聯網 命令:ping www.baidu.com 2、查詢系統中的地址資訊 命令:ip addr   3、檢視當前網路連線 命令:nmcli connection show   4、設定網路連線 命令:nmcli con up eno167777

如何使用指令碼批量建立虛擬機器

  上篇文章我們介紹瞭如何使用VMware來克隆虛擬機器,克隆雖然能夠使我們避免了繁瑣的建立過程、大大簡化我們的操作,但在需要建立數量巨大的虛擬機器的情況下其步驟依然較多,顯然並不能滿足我們這種高效化

linux--VM虛擬機器下配置IP地址(NAT模式)

1.檢視下自己的ip,開啟cmd,然後在小黑框裡面輸入ipconfig。找到 VMware Network Adapter VMnet8,先別關這個視窗。做下一步2.先看一下本機所有網路連線,找到 VMware Network Adapter VMnet8 。這個就是NAT模式下和虛擬機器相關的ip連線。開啟

紅帽虛擬化RHEV3.2建立虛擬機器圖文Step by Step

Do you want Setup to configure the firewall? (Yes, No) [Yes]: no #需要配置防火牆嗎 Host fully qualified DNS name of this server [rhevm.pod2

linux虛擬機器無法顯示ip地址

喜歡交流java技術的朋友請加qq群861606071,一起探討技術,分享資源!  1、開啟虛擬機器的網路配置: 2、進入linux的網路配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 3、修改no為yes

VMware 虛擬機器Win10固定ip地址

前言     為了防止oracle,mysql等軟體的安裝報錯,我將這些軟體安裝在VMware虛擬機器裡面了,但是很快就發現虛擬機器的win10的ip地址每次重啟都會發生改變。 解決方法: 一

自己動手寫Java虛擬機器第2章 搜尋class檔案

學習Java虛擬機器以及go語法,記錄下自己的學習過程 2.1 類路徑 2.2 準備工作 2.3 實現類路徑 2.3.1 Entry介面 2.3.2 DirEntry 2.3.3 ZipEntry 2.3.4 CompositeEntry 2.3.5 Wil

Winxp虛擬機器含VC++及C++書籍資料下載說明

進入百度雲盤,使用者名稱:[email protected],密碼:softwarec++其中,xp檔案較大,下載可能會比較費時,下載後大家互相傳一下,另外一個vmware軟體的版本是9.0,大家也可以到百度搜索下載

VM虛擬機器 雙系統的安裝 windows+linux

一、準備工具 1.VM虛擬機器,在網路上下載並安裝改虛擬機器 2.製作Windows 啟動盤(在網上下載大白菜u盤啟動盤製作工具) 3.點開軟體,插入u盤,勾選ntfs,點選“一鍵製作usb啟動盤”,讀條結束,U盤啟動盤就製作好了 4.映象: Windows  7 映象

[連載] 深入理解Java虛擬機器JVM高階特性與最佳實踐之 【走近Java】

連載目錄 :    http://blog.csdn.net/u010903284/article/details/53117958 1.1 Java概述:               Java 不僅僅是一門程式語言,還是一個由一系列計算機軟體和規範形成的技術體系,這個技

網路基礎之ARP地址解析協議為什麼IP地址MAC地址都要有,又是如何通過IP地址解析到MAC地址

ARP協議      Address Resolution Protocol      地址解析協議  在區域網中,網路中實際傳輸的是“幀”,幀裡面是有目標主機的MAC地址的。在乙太網中,一個主機要和另一個主機進行直接通訊,必須要知道目標主機的MAC地址。但這個目標MAC地址