Azure上linux虛機使用fio測試磁碟,以及附加資料盤建立raid提高iops

來源:互聯網
上載者:User

標籤:azure   linux vm   

客戶在 Azure中建立虛擬機器後,通常有磁碟效能測試的需求。

針對基Azure 上 Centos  Linux虛擬機器環境進行磁碟效能測試。

在Azure中建立Linux虛擬機器後,可以看見兩個磁碟分別為sda和sdb,其中sda為系統硬碟,sdb為臨時盤。臨時盤為虛擬機器所在物理伺服器的本機存放區,在Windows Azure執行計畫內或計劃外維護時,虛擬機器會移動到其他宿主伺服器,所以會造成臨時盤的內容丟失。除系統硬碟和臨時盤外,Windows Azure還允許使用者掛載資料盤。對於Linux虛擬機器,系統硬碟才30G的空間,所以在實際應用情境中需要掛載資料盤儲存應用資料。在azure linux虛擬機器中,對於A7類型的虛擬機器最多允許掛載16個資料磁碟,提供16TB的儲存空間並且這些磁碟支援通過Raid機制獲得更好的讀/寫效能。

1. 安裝磁碟測試載入器

Fio是常見的磁碟IOPS測試載入器。首先在Centos中安裝Fio:

yum install gcc libaio-devel –y

下載Fio 並安裝:

wgethttp://brick.kernel.dk/snaps/fio-2.1.6.1.tar.gz

tar -zxvf fio-2.1.6.1.tar.gz

 

cd fio-2.1.6.1

make&& make install

2. 查看當前磁碟資訊

fdisk -l

可以看見當前系統硬碟和臨時盤

3. 附件資料磁碟

在Windows Azure的管理portal中,為測試虛擬機器新增資料磁碟。

輸入磁碟大小,附加成功後查看磁碟資訊:

Sudo grep scsi /var/log/messages

對新磁碟執行分區操作:

sudo fdisk /dev/sdc

分區完成後建立檔案系統:

sudo mkfs -t ext4 /dev/sdc1

建立掛載點

sudo mkdir /datadrive


sudo mount /dev/sdc1 /datadrive

 

為下次重啟能自動掛載,需要修改/etc/fstab檔案

執行sudo -i blkio 擷取新磁碟的uuid,並添加到fstab檔案

`UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e/datadrive ext4 defaults 1 2`

4. 執行測試

對系統硬碟執行隨機寫測試

fio -filename=/dev/sda1 -direct=1 -iodepth1 -thread -rw=randwrite -ioengine=psync-bs=16k -size=20G -numjobs=30-runtime=1000 -group_reporting -name=test

測試結果的iops為478,與windows Azure每磁碟500IOPS較為一致。

接下來執行隨機讀和隨機讀寫測試:

隨機讀測試

 

fio -filename=/dev/sda1 -direct=1 -iodepth1-thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10-runtime=1000-group_reporting-name=test

隨機讀寫測試

fio -filename=/dev/sda1 -direct=1 -iodepth1 -thread -rw=randrw-rwmixread=70 -ioengine=psync -bs=16k -size=20G -numjobs=30-runtime=100-group_reporting -name=test1

用以上方法對資料盤/dev/sdc1進行測試。

參數說明:

filename=/dev/sdb1測試檔案名稱,通常選擇需要測試的盤的data目錄。

direct=1測試過程繞過機器內建的buffer。使測試結果更真實。

rw=randwrite測試隨機寫的I/O

rw=randrw測試隨機寫和讀的I/O

bs=16k單次io的塊檔案大小為16k

bsrange=512-2048同上,提定資料區塊的大小範圍

size=5g本次的測試檔案大小為5g,以每次4k的io進行測試。

numjobs=30本次的測試線程為30.

runtime=1000測試時間為1000秒,如果不寫則一直將5g檔案分4k每次寫完為止。

ioengine=psyncio引擎使用pync方式

rwmixwrite=30在混合讀寫的模式下,寫占30%

group_reporting關於顯示結果的,匯總每個進程的資訊。

此外

lockmem=1g只使用1g記憶體進行測試。

zero_buffers用0初始化系統buffer。

nrfiles=8每個進程組建檔案的數量

 

 

部署RAID的想法特別對在Windows Azure上建立的 Linux VM,在VM上部署MySQL等服務,同時希望能夠獲得效能更高的磁碟讀/寫訪問,得到更好的資料安全、支援更多的並發訪問會更好


對於Azure上的Linux虛擬機器,可以採用以下的步驟,來建立RAID:

1. 在一個虛擬機器上附加多個資料盤。

不同尺寸的虛擬機器可以附加的資料盤的數量也不一樣:其中8核的XL和A7最多可以增加16塊1T的資料盤,即每個虛擬機器最多可提供16TB。

這一工作可以在 Azure管理入口網站(Management Portal)上來完成,也可以用PowerShell指令碼等方式來添加。

需要注意的是,對於資料磁碟,主機緩衝預設喜好設定為“無”,這樣對於資料庫的應用,保證資料不丟而言更為有利。

2. 在Linux虛擬機器中,利用root許可權,執行下面的建立RAID、檔案系統及磁碟安裝命令:

mdadm --create/dev/md0 --level=0 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf

mkfs.ext3/dev/md0

mount /dev/md0/raid0

例如,利用4塊資料磁碟,部署RAID-0。

不同的RAID等級,可以滿足使用者針對磁碟讀/寫效能、資料校正等方面的要求。

 

 

 


Azure上linux虛機使用fio測試磁碟,以及附加資料盤建立raid提高iops

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.