• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            sunrise

            每天不斷學(xué)習(xí),才能不斷提升自己。

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              64 隨筆 :: 0 文章 :: 92 評論 :: 0 Trackbacks

            作者:張華  發(fā)表于:2012-3-30
            版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時(shí)請務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本版權(quán)聲明

            ( http://blog.csdn.net/quqi99 )

                     

            1網(wǎng)絡(luò)橋接配置

            首先,fedora16對網(wǎng)卡使用了新的命名方式,第一塊網(wǎng)卡不叫eth0,我的T420上叫em1。它為什么做,有興趣可參考文獻(xiàn):

            Fedora15的新的網(wǎng)卡命名方式http://www.20ju.com/content/V168885.htm

            總之,我不喜歡這種叫法,現(xiàn)在將網(wǎng)卡名稱從em1改回eth0,具體做法請參考文獻(xiàn),(修改fedora16的網(wǎng)絡(luò)接口名,使其變回eth0http://www.bitbi.biz/fedora-2/%E4%BF%AE%E6%94%B9fedora-16-%E7%9A%84%E7%BD%91%E7%BB%9C%E6%8E%A5%E5%8F%A3%E5%90%8D%EF%BC%8C%E4%BD%BF%E5%85%B6%E5%8F%98%E5%9B%9E-eth0-2685

            最后配置橋接(參考文獻(xiàn):http://blog.bodhizazen.net/linux/fedora-15-virt-manager-bridged-networking/):


            sudoyuminstallbridge-utils

            sudovi/etc/sysconfig/network-scripts/ifcfg-eth0

            DEVICE=eth0

            TYPE=Ethernet

            #changethehardwareaddresstomatchthehardwareaddressyourNICuses

            HWADDR=00:21:CC:60:D6:1A

            ONBOOT=yes

            #BOOTPROTO=dhcp

            #MODE=Managed

            BRIDGE=br100

            NM_CONTROLLED=no


            sudovi/etc/sysconfig/network-scripts/ifcfg-br100

            DEVICE=br100


            TYPE=Bridge

            BOOTPROTO=dhcp

            #BOOTPROTO=static

            #IPADDR=192.168.99.100

            #NETWORK=192.168.99.0

            #NETMASK=255.255.255.0

            #GATEWAY=192.168.99.1

            #DNS1=202.106.195.30

            ONBOOT=yes

            NM_CONTROLLED=no


            最后重啟網(wǎng)絡(luò)服務(wù),sudoservicenetworkrestart,需要注意的是,fedora默認(rèn)使用NetworkManager來管理網(wǎng)卡,而briage不支持NetworkManager,所以需要關(guān)閉NetworkManager服務(wù)(sudoserviceNetworkManagerstop&sudoserviceNetworkManager disable)。不然會(huì)報(bào)下列錯(cuò)(tail-f/var/log/message)

            http://forums.fedoraforum.org/showthread.php?t=262356

            Bringingupinterfaceeth0:Error:Connectionactivationfailed:DevicenotmanagedbyNetworkManagerorunavailable
            [FAILED]
            RTNETLINK
            answers:Fileexists

            不過,我沒有使用上述方法,因?yàn)槟汴P(guān)閉NetworkManager服務(wù)的話,你的無線網(wǎng)卡也不能用NetworkManager管理了,所以我在上述的配置中加了NM_CONTROLLED=no實(shí)現(xiàn)了同樣的目的。

            我機(jī)器的其他條件是:

            1)你得確保安裝了libvirtd(yuminstalllibvirtd&servicelibvirtdstart),可用virsh-cqemu:///systemlist命令測試

            2)安裝gcc,這個(gè)在安裝pythonmodules時(shí)會(huì)用到

            3mysqlroot用戶應(yīng)該有密碼,可用echo"showdatabases"|mysql-uroot-ppassword

            4)在命令行中先切換到root用戶,然后再啟動(dòng)eclipse

            2通過git下載源碼

            1) 安裝javaeclipse,略

            2)為eclipse安裝pydev插件(help->installnewsoftwae...,http://pydev.org/updates),然后再"window->preferences":菜單中的Pydev->InterpreterPython選項(xiàng)卡中點(diǎn)擊AutoConfig按鈕配置python

            3) eclipse安裝egit插件(http://download.eclipse.org/egit/updates)

            4)eclipse安裝django插件:

            installdjangopluginforpython,firstdownloadhttp://www.djangoproject.com/download/1.3.1/tarball/

            sudopythonsetup.pyinstallexportPATH=/usr/lib/python2.7/site-packages/django/bin:$PATH

            django-admin.pyversion

            django-admin.pystartprojectmyFirstDjango

            cdmyFirstDjango

            sudochmod777*

            ./manage.pyrunserver

            http://127.0.0.1:8000/

            5)eclipse中通過git插件clone下列組件的master分支(cloneagitrepository),注意,有的組件會(huì)下載失敗,只需要將https協(xié)議換成git協(xié)議即可。我的代碼下載在/bak/openstack目錄下。

            #computeservice

            NOVA_REPO=https://github.com/openstack/nova.git

            #storageservice

            SWIFT_REPO=https://github.com/openstack/swift.git

            #imagecatalogservice

            GLANCE_REPO=https://github.com/openstack/glance.git

            #unifiedauthsystem(managesaccounts/tokens)

            KEYSTONE_REPO=https://github.com/openstack/keystone.git

            #awebsockets/html5orflashpoweredVNCconsoleforvminstances

            NOVNC_REPO=https://github.com/cloudbuilders/noVNC.git

            #djangopoweredwebcontrolpanelforopenstack

            HORIZON_REPO=https://github.com/openstack/horizon.git

            #pythonclientlibrarytonovathathorizon(andothers)use

            NOVACLIENT_REPO=https://github.com/openstack/python-novaclient.git

            #pythonkeystoneclientlibrarytonovathathorizonuses

            KEYSTONECLIENT_REPO=https://github.com/openstack/python-keystoneclient

            #quantumservice

            QUANTUM_REPO=https://github.com/openstack/quantum

            #quantumclient

            QUANTUM=https://github.com/openstack/python-quantumclient

            #Tempesttestsuite

            https://github.com/openstack/tempest.git

            #melangeservice

            https://github.com/openstack/melange.git

            #pythonmelangeclientlibrary

            https://github.com/openstack/python-melangeclient.git

            #swiftclient

            https://github.com/chmouel/python-swiftclient.git

            3eclipse中導(dǎo)入工程

            1)"GitRepositories"視圖上上步clone下來的每一個(gè)工程的"WorkingDirector"目錄上右鍵點(diǎn)擊選"importprojects"導(dǎo)入工程,再選importasgeneralproject",直接見下圖吧。

            2)依次做完上步之后,然后可以進(jìn)入java視圖,在每個(gè)工程上點(diǎn)右鍵選"Pydev->setasPydevproject",即使是horizon工程也不例外,設(shè)置的是pydevproject,而不是django工程

            3安裝一些依賴包

            1. install python-pip,nowpipisareplacementfor`easy_install`

            sudo yumsearchpython-pip

            sudo yuminstallpython-pip.noarch

            sudo yuminfopython-pip.noarch

            1. sudo yuminstallgcc;

            sudo yuminstallpython-devel

            sudo yuminstallpython-greenlet

            sudo yuminstallMySQL-python

            sudo yuminstalleuca2ools

            sudo yuminstalldnsmasq

            sudo yuminstallscsi-target-utils

            1. install MQ

            rabbitmqconfiguration

            sudoyuminstallrabbitmq-server

            sudoservicerabbitmq-serverstart

            sudochkconfigrabbitmq-serveron

            changetherabbitpasswordsincethedefaultis"guest"

            sudorabbitmqctlchange_passwordguestpassword

            sudorabbitmqctlstatus

            1. install mysql

            sudoyuminstallmysql-serverphp-mysql

            sudoservicemysqldstart

            sudochkconfigmysqldon

            mysql-uroot-ppasswordSETPASSWORDFOR'root'@'localhost'=PASSWORD('password');

            sudomysql-uroot-ppassword-h127.0.0.1-e"GRANTALLPRIVILEGESON*.*TO'root'@'%'identifiedby'password';"

            sudocp/usr/share/mysql/my-small.cnf/etc/my.cnf

            sudosed-i's/127.0.0.1/0.0.0.0/g'/etc/my.cnf

            1. install libvirt

            sudo yuminstalllibvirt

            sudo servicelibvirtdrestart

            6) sudoyuminstallpython-sqlite2python-lxmlpython-greenlet-develpython-ldap

            安裝依賴的Pythonmodules

            依次檢查,如果有的工程下的目錄有tools/pip-requires,則可以運(yùn)行下列命令安裝依賴的pythonmodules,例:

            cd/bak/openstack/python-novaclient/

            pip-python install-rtools/pip-requires

            pip-python install-rtools/test-requires

            并對除了你要在eclipse中運(yùn)行的工程(keystone,glance,nova,horion)除外的其他工程(novaclient,keystoneclient)依次運(yùn)行命令:

            python setup.py develop

            注意,如果在對nova運(yùn)行時(shí)報(bào)ImportError:cannotimportnamenormalize,normalize/usr/lib64/python2.7/local.py里的一個(gè)方法,原因是nova工程的目錄下有一個(gè)locale的目錄將local的名稱空間給蓋了(http://groups.google.com/group/django-users/browse_thread/thread/e8bb9089d9e5be60)

            5最小化配置openstack

            只需要啟動(dòng)keystone,glance-reg,glance-api,nova-all,dashboard四個(gè)組件就可以啟動(dòng)openstack了,其他的服務(wù)不是必須的。其中,由于dashboard是一個(gè)django工程,我們不需要安裝apache,用django自帶的http服務(wù)器(pythonmanage.pyrunserver)即可啟動(dòng)它。

            5.1配置keystone

            1)配置:

            vi/bak/openstack/keystone/etc/keystone.conf

            connection=mysql://root:password@localhost/keystone

            driver=keystone.token.backends.sql.Token

            driver=keystone.contrib.ec2.backends.sql.Ec2

            2)創(chuàng)建數(shù)據(jù)庫:

            mysql-uroot-ppassword-e'dropdatabasekeystone'

            mysql-uroot-ppassword-e'createdatabasekeystone'

            mysql-uroot-ppassword-e"grantallon*.*toroot@'%'identifiedby'password'"

            cd/bak/openstack/keystone&&./bin/keystone-managedb_sync

            3)啟動(dòng)

            若是在命令行中如下方法啟動(dòng)

            ./bin/keystone-all--config-file /bak/openstack/keystone/etc/keystone.conf --log-config/bak/openstack/keystone/etc/logging.conf -d –debug

            若是在eclipse中,如下圖,一定要將Argumentsworkingdirctory中的${workspace_loc:keystone/bin}改為{workspace_loc:keystone},如果你不想這樣改的話,那就你就得在Programarguments那段填參數(shù)--config-file/bak/openstack/keystone/etc/keystone.conf --log-config/bak/openstack/keystone/etc/logging.conf -d –debug












              1. 初始化數(shù)據(jù)

            SERVICE_TOKEN=ADMIN
            ADMIN_PASSWORD=password
            SERVICE_ENDPOINT=http://localhost:35357/v2.0
            export
            SERVICE_TOKEN=$SERVICE_TOKEN
            export
            SERVICE_ENDPOINT=$SERVICE_ENDPOINT
            function
            get_id(){
            echo`$@|grepid|awk'{print$4}'`
            }
            ADMIN_TENANT=`get_id
            keystonetenant-create--name=admin`
            ADMIN_USER=`get_id
            keystoneuser-create--name=admin--pass="$ADMIN_PASSWORD"--email=admin@example.com`
            ADMIN_ROLE=`get_id
            keystonerole-create--name=admin`
            KEYSTONEADMIN_ROLE=`get_id
            keystonerole-create--name=KeystoneAdmin`
            KEYSTONESERVICE_ROLE=`get_id
            keystonerole-create--name=KeystoneServiceAdmin`
            keystone
            user-role-add--user$ADMIN_USER--role$ADMIN_ROLE--tenant_id$ADMIN_TENANT
            keystone
            user-role-add--user$ADMIN_USER--role$KEYSTONEADMIN_ROLE--tenant_id$ADMIN_TENANT
            keystone
            user-role-add--user$ADMIN_USER--role$KEYSTONESERVICE_ROLE--tenant_id$ADMIN_TENANT

            echo$?

            5)驗(yàn)證

            keystoneservice-list

            keystoneuser-list

            keystonerole-list

            1. 架構(gòu)http://keystone.openstack.org/architecture.html

            Service,使用keystone的內(nèi)部服務(wù)

            Identity,基于角色的驗(yàn)證與授權(quán)

            Token,user/tenantcredentials已經(jīng)驗(yàn)證之后生成的隨機(jī)數(shù)

            Catalog,注冊的后端,sql,kvs,ldap

            Policy,提供rule-basedauthorizationengine

            nosetests-s-vtest_backend_sql.py


            keystoneservice-create--nameCOMPUTE_ID--typecompute--description'OpenStackComputeservice'




            keystoneendpoint-create--region=RegionOne--service_id=COMPUTE_ID--publicurl='http://localhost:$(compute_port)s/v1.1/$(tenant_id)s'--internalurl='http://localhost:$(compute_port)s/v1.1/$(tenant_id)s'adminurl='http://localhost:$(compute_port)s/v1.1/$(tenant_id)s'


            keystoneendpoint-create--region=RegionOne--service_id=IDENTITY_ID--publicurl='http://localhost:$(public_port)s/v2.0'--internalurl='http://localhost:$(public_port)s/v2.0'--adminurl='http://localhost:$(admin_port)s/v2.0'




            keystoneendpoint-create--region=RegionOne--service_id=IMAGE_ID--publicurl='http://localhost:9292/v1'--internalurl='http://localhost:9292/v1'--adminurl='http://localhost:9292/v1'

            執(zhí)行上述語句要keystone.conf文件中有:

            driver= keystone.catalog.backends.sql.Catalog


            5.2配置glance

            1)配置

            vi/bak/openstack/glance/etc/glance-registry.conf

            sql_connection=mysql://root:password@localhost/glance


            vi/bak/openstack/glance/etc/glance-api-paste.conf

            vi/bak/openstack/glance/etc/glance-registry-paste.conf

            #admin_tenant_name=%SERVICE_TENANT_NAME%

            #admin_user=%SERVICE_USER%

            #admin_password=%SERVICE_PASSWORD%

            admin_token=ADMIN


            vi/bak/openstack/glance/etc/glance-api.conf

            vi/bak/openstack/glance/etc/glance-registry.conf

            [paste_deploy]

            flavor=keystone

            debug=True

            #log_file=/var/log/glance/api.log


            2)數(shù)據(jù)庫:

            mysql-uroot-ppassword-e'DROPDATABASEIFEXISTSglance;'

            mysql-uroot-ppassword-e'CREATEDATABASEglance;'

            mysql-uroot-ppassword-e"grantallon*.*toroot@'%'identifiedby'password'"

            cd/bak/openstack/glance&&./bin/glance-managedb_sync

            3)啟動(dòng)

            ./bin/glance-registry--config-file=/bak/openstack/glance/etc/glance-registry.conf

            filesystem_store_datadir=/var/lib/glance/images

            ./bin/glance-apiconfig-file=/bak/openstack/glance/etc/glance-api.conf

            如果是在eclipse中啟動(dòng),注意和上面keystone的一樣,將基準(zhǔn)路徑從${workspace_loc:glance/bin}改為${workspace_loc:glance},這樣改了之后,就直接從${workspace_loc:glance/}/etc/glance目錄讀配置文件,而不是從/etc/glance


            4) 上傳鏡像

            cd /bak/openstack/glance

            export FILES=/bak/openstack/glance

            mkdir -p $FILES/images


            exportOS_AUTH_USER=admin
            export OS_AUTH_KEY=password
            exportOS_AUTH_TENANT=admin
            exportOS_AUTH_URL=http://localhost:35357/v2.0
            exportOS_AUTH_STRATEGY=keystone
            sudo wget -chttp://images.ansolabs.com/tty.tgz -O $FILES/images/tty.tgz
            tar-zxf $FILES/images/tty.tgz -C $FILES/images
            TOKEN=`curl -s -d"{\"auth\":{\"passwordCredentials\":{\"username\": \"$OS_AUTH_USER\", \"password\":\"$OS_AUTH_KEY\"}, \"tenantName\":\"$OS_AUTH_TENANT\"}}" -H "Content-type:application/json" http://localhost:5000/v2.0/tokens | python -c"import sys; import json; tok = json.loads(sys.stdin.read());print tok['access']['token']['id'];"`

            RVAL=`./bin/glanceadd -A $TOKEN name="cirros-kernel" is_public=truecontainer_format=aki disk_format=aki <$FILES/images/aki-tty/image`
            KERNEL_ID=`echo $RVAL | cut -d":"-f2 | tr -d " "`


            RVAL=`./bin/glance add-A $TOKEN name="cirros-ramdisk" is_public=truecontainer_format=ari disk_format=ari<$FILES/images/ari-tty/image`
            RAMDISK_ID=`echo $RVAL | cut-d":" -f2 | tr -d " "`


            ./bin/glance add -A$TOKEN name="cirros" is_public=true container_format=amidisk_format=ami kernel_id=$KERNEL_ID ramdisk_id=$RAMDISK_ID<$FILES/images/ami-tty/image

            5) 驗(yàn)證
            ./bin/glance-f index

            5.4nova配置

            sudoyuminstallscsi-target-utils

            sudoservicetgtdrestart(如果啟動(dòng)不了,可換用于fedora17tgtdrpm包)

            sudosystemctlstatustgtd.service

            sudovgsnova-volumes

            sudolosetup-f--show/bak/kvmimages/nova.img

            sudovgcreatenova-volumes/dev/loop0

            sudoservicetgtdrestart

            sudosystemctlstatustgtd.service

            sudosystemctlstatusnetwork.service

            實(shí)例路徑:/bak/openstack/nova/instances

            查看實(shí)例:virshlist--all

            查看iscsisession:iscsiadm--modenode

            刪除iscsisession:sudoiscsiadm--modenode--logout&&sudoiscsiadm--modenode--opdelete


            1)配置文件

            vi/etc/nova/nova.conf

            --verbose

            --logdir=/var/log/nova
            --state_path=/var/lib/nova
            --lock_path=/var/lib/nova/tmp
            --instances_path=/var/lib/nova/instances
            --debug=True

            --scheduler_driver=nova.scheduler.simple.SimpleScheduler

            --dhcpbridge_flagfile=/etc/nova/nova.conf

            --fixed_range=10.0.0.0/24

            --s3_host=127.0.0.1

            --network_manager=nova.network.manager.FlatDHCPManager

            --volume_group=nova-volumes

            --volume_name_template=volume-%08x

            --iscsi_helper=tgtadm

            --osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions

            --my_ip=localhost

            --public_interface=br100

            --vlan_interface=eth0

            --sql_connection=mysql://root:password@localhost/nova

            --libvirt_type=kvm

            --instance_name_template=instance-%08x

            --novncproxy_base_url=http://127.0.0.1:6080/vnc_auto.html

            --xvpvncproxy_base_url=http://127.0.0.1:6081/console

            --vncserver_listen=127.0.0.1

            --vncserver_proxyclient_address=127.0.0.1

            --api_paste_config=/etc/nova/api-paste.ini

            --image_service=nova.image.glance.GlanceImageService

            --ec2_dmz_host=127.0.0.1

            --rabbit_host=localhost

            --rabbit_password=password

            --glance_api_servers=127.0.0.1:9292

            --force_dhcp_release

            --connection_type=libvirt

            --firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver


            --flat_network_bridge=br100

            --flat_interface=eth0

            --auth_strategy=keystone


            cp/bak/openstack/nova/etc/nova/api-paste.ini/etc/nova/

            vi/bak/openstack/nova/etc/nova/api-paste.ini

            #admin_tenant_name=%SERVICE_TENANT_NAME%

            #admin_user=%SERVICE_USER%

            #admin_password=%SERVICE_PASSWORD%

            admin_token=ADMIN



            2)數(shù)據(jù)庫

            mysql-uroot-ppassword-e'DROPDATABASEIFEXISTSnova;'

            mysql-uroot-ppassword-e'CREATEDATABASEnova;'

            cd/bak/openstack/nova&&sudo./bin/nova-managedbsync

            3)fixthepydevproblemwith"eventlet.monkey_patch()"

            cd/bak/openstack/nova/bin

            perl-pi-e's/eventlet\.monkey_patch\(\)/eventlet\.monkey_patch\(all=False,socket=True,select=True\)/g'*

            4千萬不要將glance安裝到系統(tǒng)中,但要在eclipse中設(shè)置glancekeystonenove的工程依賴,如果已安裝,可按下列方法清除。

            pip-pythonuninstallglance

            rm-rf/usr/bin/glance*

            rm-rf/usr/lib/python2.7/site-packages/glance.egg-link

            5)啟動(dòng)

            vi/bak/openstack/nova/bin/nova-all

            #forbinaryin['nova-compute','nova-network','nova-scheduler','nova-cert']:

            forbinaryin['nova-compute','nova-network','nova-scheduler']:


            啟動(dòng):/bak/openstack/nova/bin/nova-all

            5)驗(yàn)證

            #forkeystoneclient

            exportSERVICE_ENDPOINT=http://localhost:35357/v2.0
            export
            SERVICE_TOKEN=ADMIN

            #for
            novaclient
            export
            NOVA_AUTH_STRATEGY=keystone
            export
            NOVA_USERNAME=admin
            export
            NOVA_PASSWORD=password
            export
            NOVA_PROJECT_ID=admin
            export
            NOVA_URL=http://localhost:35357/v2.0
            export
            NOVA_VERSION=1.1

            #for glanceclient

            export OS_AUTH_USER=admin
            exportOS_AUTH_KEY=password
            export OS_AUTH_TENANT=admin
            exportOS_AUTH_URL=http://localhost:35357/v2.0
            exportOS_AUTH_STRATEGY=keystone



            nova list

            nova flavor-list

            nova image-list

            nova –debugboot--flavorm1.tiny--image5213ac41-a588-419f-9b50-c86217433df9quqitestserver

            nova-manageservicelist

            若網(wǎng)絡(luò)服務(wù)啟動(dòng)失敗,可能要:rm-rf/var/lib/nova/tmp/nova-iptables.lock

            如果上述命令不能執(zhí)行,有可能是因?yàn)樗鼰o法找到policy.json文件,需要將eclipse的基準(zhǔn)主路設(shè)為${workspace_loc:nova/etc/nova}

            5.3配置dashboard

            mv /bak/openstack/horizon/openstack_dashboard/local /bak/openstack/horizon/openstack_dashboard/local/local_settings.py

            vi/bak/openstack/horizon/openstack_dashboard/local/local_settings.py

            DATABASES= {

            'default':{

            'ENGINE':'django.db.backends.mysql',

            'NAME':'dash',

            'USER':'root',

            'PASSWORD':'password',

            'HOST':'localhost',

            'default-character-set':'utf8',

            },

            }


            vi/bak/openstack/horizon/manage.py

            #!/usr/bin/envpython

            fromdjango.core.management import execute_manager

            importos, sys

            ROOT_PATH= os.path.dirname(os.path.abspath(__file__))

            ifROOT_PATH not in sys.path:

            sys.path.insert(0,ROOT_PATH)

            importopenstack_dashboard.settings

            if__name__ == "__main__":

            execute_manager(openstack_dashboard.settings)



            1)創(chuàng)建dashboard數(shù)據(jù)庫

            sudomysql-uroot-ppassword-e'createdatabasedash';

            sudomysql-uroot-ppassword-e"grantallon*.*toroot@'%'identifiedby'password'"

            setPYTHONPATH=/bak/openstack/glance:/bak/openstack/keystone

            cd/bak/openstack/horizon/

            pythonmanage.pysyncdb


            1. 配置它工程依賴glance,keystone

            2. 將它自身的頂級目錄openstack_dashboard加入到PYTHONPATH

            3. 啟動(dòng),cd/bak/openstack/horizon

            pythonmanage.py runserver ,用它啟動(dòng)horion時(shí),就可以不需要啟動(dòng)apache


            2012-04.05添加:

            上述配置是可以正常啟動(dòng)實(shí)例的,但是實(shí)例沒有IP,那是因?yàn)橥私⑻摂M網(wǎng)絡(luò),命令如下:

            nova-manage network createpublic10.10.10.0/24 1 256

            其他測試用到的命令如下:刪除虛擬網(wǎng)絡(luò):nova-managenetworkdelete 10.10.10.0/24

            啟動(dòng)實(shí)例:nova boot --image 5213ac41-a588-419f-9b50-c86217433df9--flavor1 --nic net-id=99b1d65e-34ae-4658-8387-ce9724 myserver8

            刪除實(shí)例:novadelete myserver8

            給實(shí)例加硬盤:nova volume-create--display_namevolhua11(1代表1G)

            刪除硬盤:novavolume-attach myserver8 2 /dev/vdb


            另外,測試了一下分布式部署,基本上和上面是一樣的,注意以下幾點(diǎn)就行了:

            1)之前單機(jī)部署時(shí)控制節(jié)點(diǎn)的/etc/nova/nova.conf中使用的localhost可以不用動(dòng)。因?yàn)楸緛韒ysql, activemq, glance都是安裝在控制節(jié)點(diǎn)上。

            2)但是控制節(jié)點(diǎn) glance/etc/default_catalog.tempates中的IP需要從localhost變?yōu)閷?shí)際IP

            3)在計(jì)算節(jié)點(diǎn)上的/etc/nova/nova.conf中的IP相應(yīng)改對,如mysql, activemq, glance的IP

            4)計(jì)算節(jié)點(diǎn)僅僅只需要啟動(dòng)一個(gè)nova-compute即可工作。但是nova-compute運(yùn)行時(shí)需要通過nova-client, keystone-client, glance-client去調(diào)用相應(yīng)的服務(wù)。但是glance為client弄一個(gè)工程,所以在計(jì)算節(jié)點(diǎn)也得像上文中的方法安裝nova-client, keystone-client, glance三個(gè)依賴工程


            另外,如果在eclipse中無法調(diào)試nova工程的話,那是因?yàn)閚ova中使用了一個(gè)叫做eventlet的python協(xié)程庫(大家知道的nginx是java里的一個(gè)非阻塞I/O庫),所謂協(xié)程,是一個(gè)比線程更小的單位,協(xié)程運(yùn)行在用戶空間,所以操作系統(tǒng)無法感知它,所以它需要程序員自己去調(diào)度協(xié)程,這樣用于執(zhí)行協(xié)作式多任務(wù)效率比只用線程的更高。eventlet中有一個(gè)叫monkey patch的東東,它用來在運(yùn)行時(shí)對己有的代碼進(jìn)行修改,達(dá)到hot patch的目的。eventlet使用該技巧用來替換一些python的標(biāo)準(zhǔn)的庫,比如說socket。就是因?yàn)檫@個(gè)東東把一些標(biāo)準(zhǔn)庫給替換成它自己的庫然后與pydev插件沖突,所以造成無法在eclipse中調(diào)試程序。比如說現(xiàn)在想調(diào)試bin/nova-network,那樣可以修改bin/nova-network腳本,將evenlet.monkye_patch()替換成:

            eventlet.monkey_patch(all=False,socket=True,select=True)

            posted on 2012-10-26 10:20 SunRise_at 閱讀(2032) 評論(1)  編輯 收藏 引用 所屬分類: linux開發(fā)

            評論

            # re: (轉(zhuǎn))Fedora 16上源碼建立pydev + eclipse的OpenStack開發(fā)環(huán)境筆記草稿 ( by quqi99 ) 2012-11-12 12:52 C小加
            這不是云計(jì)算嘛?  回復(fù)  更多評論
              

            99久久99久久精品国产片果冻| 久久久亚洲欧洲日产国码二区| 久久久www免费人成精品| 精品久久久久久无码中文字幕| 狠狠色伊人久久精品综合网| 国产成人久久777777| 中文字幕成人精品久久不卡| 爱做久久久久久| 久久久WWW成人免费毛片| 伊色综合久久之综合久久| 久久精品国产亚洲av麻豆图片| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 久久国产精品99国产精| 久久久精品人妻一区二区三区蜜桃 | 香蕉99久久国产综合精品宅男自 | 久久综合久久鬼色| 久久精品国产亚洲AV忘忧草18| 久久精品中文无码资源站| 国产成人久久777777| 久久亚洲AV成人无码软件| 99久久这里只有精品| 久久免费视频1| 久久免费高清视频| 久久久久久久综合狠狠综合| av午夜福利一片免费看久久| 色播久久人人爽人人爽人人片aV| 久久久久亚洲av无码专区喷水| 精品久久国产一区二区三区香蕉| 日韩AV无码久久一区二区| 999久久久国产精品| 一本久久a久久精品亚洲| 久久精品视屏| 久久九九亚洲精品| 久久久一本精品99久久精品66| 久久免费99精品国产自在现线| 国产精品久久久久久| 亚洲va久久久噜噜噜久久狠狠| 亚洲人成无码网站久久99热国产 | 久久久久97国产精华液好用吗| www.久久99| 久久久女人与动物群交毛片|