虛擬機(jī)IO資源爭(zhēng)搶的解決方法

背景

由于Ceph存儲(chǔ)和Nova計(jì)算節(jié)點(diǎn)是混合部署的,而且虛擬機(jī)的數(shù)據(jù)卷是共用Ceph的Volume存儲(chǔ)池旋圆。難免會(huì)出現(xiàn)集群中某一臺(tái)虛擬機(jī)的數(shù)據(jù)卷io飚高的情況界睁,造成其他虛擬機(jī)iowait跟著飚高前域。出現(xiàn)這種情況對(duì)于io比較敏感的業(yè)務(wù)是災(zāi)難性的尔店。大部分情況,業(yè)務(wù)虛擬機(jī)會(huì)隨著磁盤(pán)io下降自動(dòng)恢復(fù)欢伏。但是很多情況我們并不希望集群內(nèi)出現(xiàn)這種io資源搶占的情況入挣。

方案

第一種

對(duì)于io密集型的虛擬機(jī),我們通常采用高性能的存儲(chǔ)集群來(lái)滿足此類(lèi)業(yè)務(wù)的需求硝拧。

Ceph方面

利用SSD硬盤(pán)或者高性能硬盤(pán)創(chuàng)建一個(gè)新的存儲(chǔ)池径筏,手動(dòng)修改CRush,將新硬盤(pán)關(guān)聯(lián)到新存儲(chǔ)池

OpenStack方面

  1. 配置cinder.conf河爹,創(chuàng)建一個(gè)新的volume-backend
  2. 創(chuàng)建新的volume-type匠璧,io高密集的卷創(chuàng)建在新的volume-type里面

第二種

對(duì)于Ceph存儲(chǔ)本身是低成本的構(gòu)建架構(gòu)桐款,沒(méi)有SSD或者高性能硬盤(pán)時(shí)咸这,只能通過(guò)限制虛擬機(jī)對(duì)于數(shù)據(jù)卷的讀寫(xiě)io或者速率了。

Ceph方面

沒(méi)有對(duì)于配置魔眨,目前我用的Jewel版本暫時(shí)不支持RBD的Qos設(shè)置媳维,后面新版本也許支持

OpenStack方面

1. Qos策略

Cinder的Qos支持前端和后端兩種策略,前端是在qemu中實(shí)現(xiàn)遏暴,后端是在存儲(chǔ)集群上實(shí)現(xiàn)侄刽。由于Ceph不支持,那我們就只能在前端實(shí)現(xiàn)

目前前端qemu支持配置的qos key如下:

  • total_bytes_sec: the total allowed bandwidth for the guest per second
  • read_bytes_sec: sequential read limitation
  • write_bytes_sec: sequential write limitation
  • total_iops_sec: the total allowed IOPS for the guest per second
  • read_iops_sec: random read limitation
  • write_iops_sec: random write limitation

2. 實(shí)現(xiàn)方法

通過(guò)調(diào)用libvirt接口朋凉,對(duì)數(shù)據(jù)卷添加了iotune信息州丹,如下:

創(chuàng)建標(biāo)準(zhǔn)和關(guān)聯(lián)qos

# cinder qos-create middleRW.limit  consumer="front-end"  read_iops_sec=300 write_iops_sec=300 read_bytes_sec=104857600 write_bytes_sec=62914560
# cinder qos-associate  <qos_specs> <volume_type_id>

libvirt中對(duì)數(shù)據(jù)卷的限制

</disk>
    <disk type='network' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <auth username='cinder'>
        <secret type='ceph' uuid='48baec00-46f8-4aa1-908f-c7991961b022'/>
      </auth>
      <source protocol='rbd' name='volumes/volume-756ed2a4-5c54-4b02-956f-e1ec371a2c58'>
        <host name='10.33.64.100' port='6789'/>
        <host name='10.33.64.101' port='6789'/>
        <host name='10.33.64.102' port='6789'/>
        <host name='10.33.64.103' port='6789'/>
        <host name='10.33.64.104' port='6789'/>
      </source>
      <backingStore/>
      <target dev='sdb' bus='scsi'/>
      <iotune>
        <read_bytes_sec>104857600</read_bytes_sec>
        <write_bytes_sec>41943040</write_bytes_sec>
        <read_iops_sec>300</read_iops_sec>
        <write_iops_sec>300</write_iops_sec>
      </iotune>
      <serial>756ed2a4-5c54-4b02-956f-e1ec371a2c58</serial>
      <alias name='scsi0-0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>

3. 簡(jiǎn)單測(cè)試

限制之前

# dd bs=1M count=4k if=/dev/zero of=test conv=fdatasync
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 35.2682 s, 122 MB/s

寫(xiě)限制在40M/s,基本滿足需求

# dd bs=1M count=4k if=/dev/zero of=test conv=fdatasync
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 102.72 s, 41.8 MB/s

其它

當(dāng)然也可以用libvirt的blkdeviotune命令對(duì)虛擬機(jī)做io限制杂彭,這樣不光可以對(duì)數(shù)據(jù)卷做限制墓毒,也可以對(duì)虛擬機(jī)的根盤(pán)做個(gè)性化配置。


# virsh blkdeviotune myinstances sda --read-bytes-sec 104857600 --write-bytes-sec 41943040  --read-iops-sec 300 --write-iops-sec 300  --read-bytes-sec-max 104857600 --write-bytes-sec-max 41943040  --group-name drive-scsi0-0-0-1 --read-bytes-sec-max-length 1 --write-bytes-sec-max-length 1 --read-iops-sec-max-length 1 --write-iops-sec-max-length 1

# virsh blkdeviotune 8 sdb

total_bytes_sec: 0
read_bytes_sec : 104857600
write_bytes_sec: 41943040
total_iops_sec : 0
read_iops_sec  : 300
write_iops_sec : 300
total_bytes_sec_max: 0
read_bytes_sec_max: 10485760
write_bytes_sec_max: 4194304
total_iops_sec_max: 0
read_iops_sec_max: 30
write_iops_sec_max: 30
size_iops_sec  : 0
group_name     : drive-scsi0-0-0-1
total_bytes_sec_max_length: 0
read_bytes_sec_max_length: 1
write_bytes_sec_max_length: 1
total_iops_sec_max_length: 0
read_iops_sec_max_length: 1
write_iops_sec_max_length: 1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亲怠,一起剝皮案震驚了整個(gè)濱河市所计,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌团秽,老刑警劉巖主胧,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叭首,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡踪栋,警方通過(guò)查閱死者的電腦和手機(jī)焙格,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)夷都,“玉大人间螟,你說(shuō)我怎么就攤上這事∷鸶兀” “怎么了厢破?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)治拿。 經(jīng)常有香客問(wèn)我摩泪,道長(zhǎng),這世上最難降的妖魔是什么劫谅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任见坑,我火速辦了婚禮,結(jié)果婚禮上捏检,老公的妹妹穿的比我還像新娘荞驴。我一直安慰自己,他們只是感情好贯城,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布熊楼。 她就那樣靜靜地躺著,像睡著了一般能犯。 火紅的嫁衣襯著肌膚如雪鲫骗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天踩晶,我揣著相機(jī)與錄音执泰,去河邊找鬼。 笑死渡蜻,一個(gè)胖子當(dāng)著我的面吹牛术吝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茸苇,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼排苍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了税弃?” 一聲冷哼從身側(cè)響起纪岁,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎则果,沒(méi)想到半個(gè)月后幔翰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體漩氨,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年遗增,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叫惊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡做修,死狀恐怖霍狰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饰及,我是刑警寧澤蔗坯,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站燎含,受9級(jí)特大地震影響宾濒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屏箍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一绘梦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赴魁,春花似錦卸奉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至郎嫁,卻和暖如春秉继,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背泽铛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辑鲤,地道東北人盔腔。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像月褥,于是被迫代替她去往敵國(guó)和親弛随。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文遵循「知識(shí)共享許可協(xié)議 CC-BY-NC-SA 4.0 International」宁赤,未經(jīng)作者書(shū)面許可舀透,不允許...
    laiwei閱讀 11,755評(píng)論 1 24
  • 隨著越來(lái)越多的用戶將生產(chǎn)系統(tǒng)遷移到 Azure 平臺(tái)的虛擬機(jī)服務(wù)中,Azure 虛擬機(jī)的性能愈發(fā)被關(guān)注决左。傳統(tǒng)的數(shù)據(jù)...
    ITknight閱讀 364評(píng)論 0 0
  • 隨著越來(lái)越多的用戶將生產(chǎn)系統(tǒng)遷移到 Azure 平臺(tái)的虛擬機(jī)服務(wù)中愕够,Azure 虛擬機(jī)的性能愈發(fā)被關(guān)注走贪。傳統(tǒng)的數(shù)據(jù)...
    ITknight閱讀 568評(píng)論 0 1
  • 隨著越來(lái)越多的用戶將生產(chǎn)應(yīng)用遷移到云平臺(tái),一些傳統(tǒng) IT 的運(yùn)維功能也相應(yīng)的需要改變惑芭,例如監(jiān)控坠狡,備份等等。我們希望...
    ITknight閱讀 1,310評(píng)論 0 0
  • ceph簡(jiǎn)介 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng)遂跟,誕生于2004年逃沿,是最早致力于開(kāi)發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目。隨...
    愛(ài)吃土豆的程序猿閱讀 6,013評(píng)論 0 21