精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenStack中虛擬機的監(jiān)控

運維 系統(tǒng)運維 OpenStack
整個方案的基本思想是由host負(fù)責(zé)運行程序,采集數(shù)據(jù),額外一臺服務(wù)器作為server收集每臺host的數(shù)據(jù)進(jìn)行分析。本文涉及的程序代碼均可以從Github上下載,虛擬化使用kvm,使用libvirt作為C API。

本文涉及的程序代碼均可以從我的github上下載, 并且持續(xù)更新代碼

虛擬化使用kvm,使用libvirt作為C API

基本思想:host負(fù)責(zé)運行程序,采集數(shù)據(jù),額外一臺服務(wù)器作為server收集每臺host的數(shù)據(jù)進(jìn)行分析

程序介紹:

首先我們需要打開一個和hypervisor的連接,需要一個virConnectPtr的指針

virConnectOpenReadOnly(char *) 返回的就是這麼一個指針。初始化程序例如:

void conn_init(char *ip, virConnectPtr *conn) {
    *conn = NULL; /* the hypervisor connection */
    char *p;
    p = (char *)malloc(35*sizeof(char));
    *conn = virConnectOpenReadOnly(p);
    free(p);
    if (*conn == NULL) {
        fprintf(stderr, "Failed to connect to hypervisor\n");
    }
}

第二個參數(shù)是一個指向virConnectPtr變量的指針,這裡的p指向的是類似“qemu+ssh://10.0.0.1/system”的字符串,10.0.0.1是你的host ip

關(guān)閉連接的函數(shù)

void conn_close(virConnectPtr *conn) {
    if (*conn != NULL)
        virConnectClose(*conn);
}

現(xiàn)在我們有了一個指向host的hypervisor的連接,我們可以用他來獲得host上跑的虛擬機的情況

void list_id_domain(virConnectPtr conn) {
    int ids[10];
    int maxids=10;
    int num, i;
    num = virConnectListDomains(conn, ids, maxids);
    for(i = 0;i < num;i++) {
        printf("%d\n",ids[i]);
    }
}

這個函數(shù)使用上面得到的conn這個指針,列出host上跑的實例的id號

有了id號我們就可以獲取每個實例的詳細(xì)信息,假設(shè)我有一個id為7的虛擬機實例:

virDomainPtr dom = NULL;
dom = virDomainLookupByID(conn, 7);

dom這個變量就是以后我們要一直用到的,釋放函數(shù):

virDomainFree(dom);

cpu監(jiān)控程序:

void list_info_domain(virDomainPtr domain) {
    virDomainInfo info;
    int interval = 2;
    struct timeval startTime;
    struct timeval endTime;
    int realTime;
    int cpuTime;
    double cpuUsage;
    virDomainGetInfo(domain, &info);
    unsigned long long startCpuTime = info.cpuTime;
    if (gettimeofday(&startTime, NULL) == -1) {
        printf("Failed to get start time\n");
    }
    sleep(interval);
    virDomainGetInfo(domain, &info);
    unsigned long long endCpuTime = info.cpuTime;
    if (gettimeofday(&endTime, NULL) == -1) {
        printf("Failed to get end time\n");
    }
    cpuTime = (endCpuTime - startCpuTime)/1000;
    realTime = 1000000 * (endTime.tv_sec - startTime.tv_sec) + (endTime.tv_usec - startTime.tv_usec);
    cpuUsage = cpuTime / (double)(realTime);
    printf("\t\tstate is %d\n", info.state);
    printf("\t\tvCPU is %d\n", info.nrVirtCpu);
    printf("\t\tMAXmemory is %ld\n", info.maxMem/1024);
    printf("\t\tmemory is %ld\n", info.memory/1024);
    printf("\t\tcpuUsage is %.2f%\n", cpuUsage*100);
}

解釋一下程序,首先virDomainGetInfo函數(shù),傳入剛才我們得到的domain,另外一個參數(shù)是要返回的virDomainInfo的結(jié)構(gòu)體變量,其中包含了cpu個數(shù),分配的時間,和分配的mem信息。我們分別取了間隔為2妙的info信息,使用裡面的info.cpuTime運行時間,把后一次減去前一次,然后再除以實際的gettimeofday函數(shù)得到host的cpu運行時間,得到一個近似的百分比,反應(yīng)的是此虛擬機實例的cpu使用情況在整個host的cpu使用情況中的百分比。

磁盤監(jiān)控:

void list_disk_domain(virDomainPtr domain) {
    virDomainBlockStatsStruct stats;
    size_t size;
    const char *disk = "vda";
    size = sizeof(stats);
    int interval = 2;
    virDomainBlockStats(domain, disk, &stats, size);
    long long start_rd_bytes = stats.rd_bytes;
    long long start_wr_bytes = stats.wr_bytes;
    sleep(interval);
    virDomainBlockStats(domain, disk, &stats, size);
    long long end_rd_bytes = stats.rd_bytes;
    long long end_wr_bytes = stats.wr_bytes;
 
    long rd_bytes = end_rd_bytes - start_rd_bytes;
    long wr_bytes = end_wr_bytes - start_wr_bytes;
    int rd_usage = rd_bytes/interval;
    int wr_usage= wr_bytes/interval;
// printf("%s:\n", virDomainGetName(domain));
    printf("\t\tread: %dbytes/s\n", rd_usage);
    printf("\t\twrite: %dbytes/s\n", wr_usage);
    printf("\t\trd_req: %lld\n", stats.rd_req);
    printf("\t\trd_bytes: %lld\n", stats.rd_bytes);
    printf("\t\twr_req: %lld\n", stats.wr_req);
    printf("\t\twr_bytes: %lld\n", stats.wr_bytes);
}

磁盤使用情況的方法和cpu類似,這裡用到的是virDomainBlockStats(domain, disk, &stats, size)這個函數(shù),disk指向的字符串這裡為“vda”,實際使用甚麼你要根據(jù)xml裡面的信息

網(wǎng)絡(luò)部份這裡我們要用到libvirt中的Network Filters

openstack實例的libvirt.xml在nova.conf中定義的實例目錄下,里面有

...
<interface type='bridge'>
<source bridge='br100'/>
<mac address='02:16:3e:23:f3:7d'/>
<model type='virtio'/>
<filterref filter="nova-instance-instance-00000007-02163e23f37d">
<parameter name="IP" value="10.200.200.56" />
<parameter name="DHCPSERVER" value="10.200.200.54" />
</filterref>
</interface>
...

filterref中包括了其他的filters,默認(rèn)在/etc/libvirt/nwfilter目錄下

你也可以使用virsh管理工具查看具體filter內(nèi)容

# virsh nwfilter-dumpxml nova-instance-instance-00000007-02163e23f37d
Filtering chains

Filtering chains就是你在目錄下看到的許多filters的文件。譬如有arp, 有dhcp, mac等

在程序中使用libvirt

int list_network_domain(virDomainPtr domain) {
    const char *path;
    virDomainInterfaceStatsStruct stats;
    size_t size;
    size = sizeof(stats);
    path = "vnet1";
    int interval = 2;
    if( virDomainInterfaceStats(domain, path, &stats, size) )
        return FALSE;
    long long start_rx_bytes = stats.rx_bytes;
    long long start_tx_bytes = stats.tx_bytes;
    sleep(interval);
    if( virDomainInterfaceStats(domain, path, &stats, size) )
        return FALSE;
    long long end_rx_bytes = stats.rx_bytes;
    long long end_tx_bytes = stats.tx_bytes;
    int rx_usage = (end_rx_bytes - start_rx_bytes)/interval;
    int tx_usage = (end_tx_bytes - start_tx_bytes)/interval;
    printf("\t\trx usage: %d bytes/s", rx_usage);
    printf("\trx bytes: %lld bytes", stats.rx_bytes);
    printf("\t\trx packets: %lld", stats.rx_packets);
    printf("\trx errs: %lld\n", stats.rx_errs);
    printf("\t\ttx usage: %d bytes/s", tx_usage);
    printf("\ttx bytes: %lld bytes", stats.tx_bytes);
    printf("\t\ttx packets: %lld", stats.tx_packets);
    printf("\ttx errs: %lld\n", stats.tx_errs);
}

這個函數(shù)很重要,其中將返回stats指針?biāo)赶虻膬?nèi)容便是domain中各個網(wǎng)口的信息。這裡有個問題,就是path的值,他是由domain中網(wǎng)卡的名字,不是eth0也不是em0等,而是要通過獲取domain的xml中<device>網(wǎng)卡的interface部分中<target dev="vnet0">這一部分中的vnet0,同理前面說得disk裡面的“vda”也是從這裡獲取,

所以你需要運行一下這個程序

    char *xmldesc;
    xmldesc = virDomainGetXMLDesc(dom, 0);
    if ((fp = fopen(virDomainGetName(dom), "w")) == NULL) {
        printf("Cannot open file test\n");
    }
    fprintf(fp,xmldesc);
    fclose(fp);
    free(xmldesc);

返回的是字符串指針指向了xml的內(nèi)容,記住這個程序運行好需要free指針。

via livemoon的博客

【編輯推薦】

  1. 專題:OpenStack簡介與入門指南匯總
  2. OpenStack Compute(Nova)功能分析
  3. 以公司實際應(yīng)用講解OpenStack到底是什么(入門篇)
責(zé)任編輯:yangsai 來源: livemoon的博客
相關(guān)推薦

2020-03-18 13:22:33

虛擬機OpenStack裸機

2018-07-10 15:10:50

OpenStack虛擬機metadata

2012-03-01 10:01:48

虛擬化桌面虛擬化VMware vSph

2015-07-08 14:33:23

虛擬機OpenStack

2017-09-14 10:11:24

OpenStack虛擬機過程分析

2016-09-01 12:37:13

OpenStack虛擬機Metadata

2012-05-18 10:22:23

2015-05-15 10:36:13

2020-01-17 10:52:37

無服務(wù)器容器技術(shù)

2009-08-07 10:49:57

虛擬機故障監(jiān)控

2012-05-16 11:18:49

監(jiān)控Hyper-V虛擬機

2012-03-30 09:38:33

虛擬化Hyper-V服務(wù)器虛擬化

2010-07-26 09:02:38

2013-07-17 09:32:58

2014-04-16 13:22:29

虛擬機OpenStack命令行

2015-04-28 13:35:22

SDNOpenFlowOpenStack

2014-04-16 10:44:56

OpenStack命令行工具虛擬機

2010-10-13 10:16:44

備份VMware vS虛擬機

2023-08-02 12:18:49

2023-04-26 07:51:36

虛擬機操作系統(tǒng)進(jìn)程
點贊
收藏

51CTO技術(shù)棧公眾號

色哟哟在线观看视频| 日韩精彩视频| 欧美精品xxxxx| 好吊妞视频这里有精品| 欧美性高潮在线| 欧洲高清一区二区| 98视频精品全部国产| 国产·精品毛片| 91国产精品91| 91狠狠综合久久久久久| 97久久亚洲| 日本韩国一区二区三区视频| 天堂av免费看| 婷婷婷国产在线视频| 欧美bbbbb| 欧美日韩国产成人在线观看| 亚洲熟妇一区二区三区| 精品国产亚洲日本| 日本福利一区二区| 中文精品无码中文字幕无码专区 | 免费av在线网站| 成人免费毛片app| 国产精品主播视频| 在线观看中文字幕视频| 亚洲欧美综合久久久| 日韩精品极品视频免费观看| 国产成人美女视频| 美女福利一区二区| 香蕉成人啪国产精品视频综合网 | 亚洲影视一区| 亚洲欧美日韩一区二区三区在线| 日本精品一区在线| 国产综合色在线观看| 午夜影院久久久| 久久视频免费在线| av女优在线| 久久亚洲二区三区| 国产精品免费区二区三区观看| 中文字幕视频在线播放| 香蕉久久夜色精品国产| 欧美黄网免费在线观看| 北条麻妃在线观看视频| 精品久久精品| 亚洲欧美综合v| 久久精品综合视频| 久久a爱视频| 亚洲第一精品夜夜躁人人躁| 青青草精品在线| 少妇高潮一区二区三区99| 在线观看日韩精品| 北条麻妃视频在线| 日韩a**中文字幕| 色综合久久久久网| aa免费在线观看| 日韩脚交footjobhd| 亚洲成人中文在线| 日韩人妻无码精品久久久不卡| 影音先锋男人资源在线| 自拍偷自拍亚洲精品播放| 亚洲一区二区精品在线观看| a√在线中文网新版址在线| 久久久.com| 欧美一区二区三区四区在线观看地址 | 欧美成熟视频| 欧美久久精品午夜青青大伊人| 色偷偷男人天堂| 日韩国产欧美| 久久久久www| 欧美毛片在线观看| 亚洲经典自拍| 欧洲亚洲妇女av| 国产男人搡女人免费视频| 日韩高清在线观看| 国产欧美日韩综合精品| 国产精品伊人久久| 成熟亚洲日本毛茸茸凸凹| 国模精品一区二区三区| 日本免费一区二区三区最新| 国产亚洲va综合人人澡精品 | 青青久在线视频免费观看| 久久免费看少妇高潮| 色播五月综合| 18网站在线观看| 亚洲成人av电影在线| 丰满少妇被猛烈进入高清播放| 亚洲综合在线电影| 91精品国产欧美一区二区18 | 日韩 欧美 视频| 九色porny自拍视频在线播放| 色综合咪咪久久| 天堂av在线8| 国产精品videossex| 亚洲欧美精品一区| 91高清免费观看| 国产欧美综合一区二区三区| 日本亚洲欧美成人| 国产精品久久影视| www.视频一区| 婷婷久久伊人| 欧美精品videossex少妇| 午夜影院在线观看欧美| 在线观看免费黄网站| 亚洲一区电影| 国产一区二区三区在线视频| 美女的奶胸大爽爽大片| 久久免费国产| av成人午夜| av在线电影观看| 亚洲已满18点击进入久久| 超碰网在线观看| 日韩精品一区二区三区免费视频| 亚洲精品中文字| 澳门黄色一级片| 可以免费看不卡的av网站| 91亚色免费| 福利成人在线观看| 亚洲成国产人片在线观看| 国产福利在线免费| 爽爽窝窝午夜精品一区二区| 久久久精品一区| 五月天中文字幕| gogogo免费视频观看亚洲一| 在线无限看免费粉色视频| 欧美日韩大片| 欧美精品一区二区三区高清aⅴ | 清纯唯美日韩| 91精品91久久久久久| 国产丝袜在线视频| 国产精品天美传媒沈樵| 欧美性大战久久久久xxx| 日韩在线网址| 久久精品国产成人精品| 91视频久久久| 久久五月婷婷丁香社区| 缅甸午夜性猛交xxxx| 日韩欧美一级| 久久精品久久久久久| 国产主播第一页| 久久亚区不卡日本| 国产午夜大地久久| 粉嫩的18在线观看极品精品| 久久成人一区二区| 国产精品人人爽| 国产精品国产三级国产普通话99| 日韩精品一区二区三区不卡 | 欧美成人高清电影在线| 91精品国产闺蜜国产在线闺蜜| 秋霞成人午夜伦在线观看| 你懂的视频在线一区二区| 毛片在线网站| 日韩国产一区三区| 国产精品自拍99| 91免费观看国产| www.玖玖玖| 精品在线99| 日本精品久久电影| 日本黄在线观看| 91精品福利视频| 公肉吊粗大爽色翁浪妇视频| 天堂午夜影视日韩欧美一区二区| 欧洲亚洲一区| 成人免费一区| 俺去啦;欧美日韩| 国产夫绿帽单男3p精品视频| 亚洲黄色录像片| 波多野结衣三级视频| 在线播放不卡| 久久久久成人精品免费播放动漫| 蜜桃麻豆影像在线观看| 亚洲人成在线观看| 中文字幕在线2019| 最新国产の精品合集bt伙计| 四虎1515hh.com| 国产精品hd| 精品久久久三级| 88xx成人免费观看视频库| 在线观看国产精品淫| 国产精品久久婷婷| 亚洲第一狼人社区| 久久青青草综合| 波多野结衣网页| 欧美韩日一区| 91久久精品www人人做人人爽| 三级福利片在线观看| 亚洲高清不卡av| 久久人人爽人人爽人人片av免费| 国产精品美女久久久久aⅴ| 国产不卡的av| 一本色道久久综合亚洲精品不| 欧美视频1区| 91精品一久久香蕉国产线看观看 | 欧美日韩亚洲另类| 欧美性猛交xxxxx少妇| 99久久久久免费精品国产| 成人免费毛片播放| 欧美精品18| 欧美一区二区在线视频观看| 粉嫩一区二区三区在线观看| 91国产美女在线观看| 亚洲欧美视频一区二区| 精品处破学生在线二十三| 精品久久久久久久久久久久久久久久久久| 18成人在线观看| 特级西西人体wwwww| 久久99精品一区二区三区| www精品久久| 色综合天天综合网中文字幕| 国产综合动作在线观看| 小说区图片区亚洲| 日本伊人精品一区二区三区介绍| 超碰在线免费播放| 亚洲视频在线观看视频| 亚洲av无码乱码国产精品久久| 欧美成年网站| 欧美日韩精品在线播放| 精品一区二区在线观看视频| 99久久精品一区二区| 小早川怜子一区二区三区| 久久精品午夜| 日韩激情视频一区二区| 97视频精品| 欧美第一黄网| 国产精品欧美大片| 91成人免费视频| 天天综合网天天| 91福利视频网| 三级资源在线| 精品国偷自产在线| 国产高清一区在线观看| 日韩av在线免费播放| 午夜精品久久久久久久91蜜桃| 欧美日韩在线三区| 日本视频在线观看免费| 亚洲一区二区三区四区在线观看 | 国产精品一区二区99| 超碰97国产在线| 亚洲欧美在线综合| 国产精品三级网站| 蜜桃精品在线| 日本精品久久电影| 亚洲免费福利| 日本精品免费一区二区三区| 国产精品电影| 久久久亚洲网站| 欧美性爽视频| 久久久噜噜噜久噜久久| 6699嫩草久久久精品影院| 欧美日本精品在线| 在线观看男女av免费网址| 久久精品中文字幕免费mv| 最新真实国产在线视频| 一区二区三区天堂av| 高清av在线| 色多多国产成人永久免费网站| yjizz视频网站在线播放| 一本一本久久a久久精品牛牛影视| 欧美高清成人| 亚洲欧美激情精品一区二区| 裸体xxxx视频在线| 亚洲香蕉av在线一区二区三区| 黑人与亚洲人色ⅹvideos| 亚洲一区二区久久久| 国产天堂素人系列在线视频| 中文字幕亚洲一区在线观看| www免费网站在线观看| 视频直播国产精品| www在线免费观看视频| 欧美激情在线观看视频| 黄色在线免费观看网站| 日韩av电影在线播放| 素人啪啪色综合| 国产伊人精品在线| 51亚洲精品| 六十路精品视频| 欧美日韩水蜜桃| 国产精品久久成人免费观看| 在线成人激情| 欧美精品自拍视频| 水野朝阳av一区二区三区| 九九热精品在线播放| 国产精品乡下勾搭老头1| 亚洲av成人片无码| 国产欧美日韩综合| 少妇被躁爽到高潮无码文| 午夜电影一区二区| 中日韩av在线| 精品免费一区二区三区| 精品欧美不卡一区二区在线观看| www日韩中文字幕在线看| 欧美人体视频xxxxx| 欧洲亚洲女同hd| 精品国产亚洲一区二区三区大结局| 国产精品对白刺激久久久| 国产欧美亚洲精品a| 日本一道在线观看| 欧美中文日韩| 人妻激情偷乱视频一区二区三区| 99久久99精品久久久久久| 成人无码精品1区2区3区免费看| 亚洲无线码一区二区三区| 国产男人搡女人免费视频| 精品国产亚洲一区二区三区在线观看| 蜜桃视频在线播放| 九九九热精品免费视频观看网站| 综合日韩av| 99视频在线播放| 日本女优一区| 久在线观看视频| 国产乱色国产精品免费视频| 性久久久久久久久久| 亚洲欧洲国产日韩| 亚洲天堂一区在线| 日韩女优毛片在线| yw视频在线观看| 日本精品久久久久影院| av成人资源网| ijzzijzzij亚洲大全| 久久久人人人| 无码一区二区精品| 亚洲激情成人在线| 97精品人妻一区二区三区香蕉| 国产视频久久久久| 欧美四级在线| 亚洲一区二区三区视频播放| 精品一级毛片| 欧美成人一区二区在线观看| 国产成人鲁色资源国产91色综| 天堂资源在线视频| 日本丰满少妇一区二区三区| 神马久久久久久久久久| 久久99热精品| 国产精品xnxxcom| 亚洲一区二区三区免费看| 石原莉奈一区二区三区在线观看| 一级特黄a大片免费| 亚洲精品成a人| 国产女同91疯狂高潮互磨| 色婷婷综合成人av| 国产成人毛片| 日韩在线观看电影完整版高清免费| 99在线精品免费视频九九视| 国产高潮失禁喷水爽到抽搐 | 国内精品不卡在线| 国产又粗又长又硬| 欧美无砖专区一中文字| 成人在线免费公开观看视频| 日本久久久久久久久| 自拍自偷一区二区三区| 国产一区二区三区精彩视频| 91女厕偷拍女厕偷拍高清| 国产无人区码熟妇毛片多| 精品国产成人系列| av手机在线观看| 极品尤物一区二区三区| 国产亚洲在线| 性欧美13一14内谢| 91久久精品一区二区| www.视频在线.com| 国产日韩欧美另类| 亚洲男女av一区二区| 欧美一区二区三区影院| 亚洲国产一区视频| 亚洲 国产 欧美 日韩| 日本aⅴ大伊香蕉精品视频| 欧美男gay| 一区二区xxx| 亚洲三级在线免费| 亚洲欧美激情在线观看| 国内成人精品视频| 伊人久久大香线蕉| 三级在线视频观看| 亚洲欧美视频在线观看| 黄色成人一级片| 热re91久久精品国99热蜜臀| 成人在线免费观看视频| 日日干日日操日日射| 亚洲国产视频在线| 艳母动漫在线看| 国产精品亚洲综合天堂夜夜| 亚洲午夜精品一区二区国产| 国产精品一区二区在线免费观看| 天天综合网 天天综合色| 国产小视频免费在线网址| 国产在线精品一区免费香蕉| 国产综合欧美| 久操视频免费看| 7777精品伊人久久久大香线蕉完整版| 在线不卡日本v二区707| 久久久久久草| 久久99精品一区二区三区三区| 国产精品7777| 一区二区在线视频| 在线观看视频一区二区三区| 黄色片一级视频| 亚洲女同一区二区| 日本aaa在线观看| 91亚洲精品在线观看| 免费看的黄色欧美网站| 性欧美videos| 亚洲男人天堂古典|