文章出處

Amazon Elastic Block Store(EBS)可作為EC2實例的持久性數據塊級存儲。其具有高可用性和持久性的特點,可用性高達99.999%。給現有的EC2實例擴展新的存儲塊只需要幾分鐘的時間,省時省力。每個EBS塊都被放置在一個特定的可用區內,并且會自動維護一個副本,隨時保護數據安全。

Amazon EBS共提供三種硬盤類型,SSD(固態硬盤), Provisioned IOPS SSD(特供IOPS固態硬盤)和Magnetic(普通硬盤)。SSD是默認的EC實例的硬盤格式(兇殘啊!Amazon真是有錢,自從咱的本本換了SSD后,也離不開SSD了。)Provisioned IOPS SSD更兇殘,具有高一致性及超低延遲的性能,專門設計用于I/O密集型操作,比如數據庫。IOPS全稱為Input/Output Operations Per Second,即每秒進行讀寫(I/O)操作的次數,用來衡量隨機訪問的性能。Provisioned IOPS SSD的每GB IOPS可達30。Magnetic Volumes就是俗稱的磁卷了,它最便宜,當然性能也最差了。如果你的應用程序不是I/O密集型的,對數據的訪問不是很頻繁,使用該類型就比較劃算。

EBS還有一個功能就是很方便的創建快照,并保存到Amazon S3上去。EBS的快照是增量存儲的。比如你有一塊100G的硬盤,第一次快照使用了100G容量,第二次快照時只有5G的數據發生了變化,那么你總共只需花105G的存儲費用。當然你不不必擔心刪除其中一個快照導致數據丟失,因為刪除一個快照時,系統只會刪除其中不會被其它快照使用的數據,所以不會影響其它快照。

好了,接下來是本文的兩個主要任務是兩個。第一個任務是給一個EC實例附加一個新的EBS卷,并且加入到當前EC實例的文件系統中。第二個任務是為該EC實例創建一個快照。

首先當然是準備工作了,創建一個新的EC2實例。如何創建上一篇文章已經詳細介紹了,這里不再累述。如果還沒有AWS account的同學可以使用可以qwiklabs提供的免費實驗來進行該練習。地址是https://run.qwiklabs.com。說實話qwiklabs真是個好東西,如果我使用自己的account來進行練習,要花不少錢。而qwiklabs里面有幾個免費實驗,使用AWS的所有資源不收任何費用,真是業界良心。

EC2創建完畢后,應該是這個樣子。

然后遠程ssh進去。

1
$: ssh ec2-user@54.191.59.163 -i ~/Downloads/key.pem

先查看下當前的磁盤情況。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.1G  6.6G  14% /
devtmpfs        486M   56K  486M   1% /dev
tmpfs           499M     0  499M   0% /dev/shm

可以看出當前磁盤總大小在8G左右,有三個文件系統。

接下來就創建一個硬盤。

點擊EC2控制面板左側的Volumes按鈕,來到磁盤的控制面板。

這里展示的一塊硬盤就是當前ec2實例使用的硬盤。

我們點擊上面的Create Volumes來新添加一塊硬盤。

硬盤類型就是我上文的說的那幾種,IOPS越高,硬盤就越貴,可用區的選擇一定要和當前要使用的EC2實例保持一致,要不然會無法跨可用區附加硬盤。如果提供snapshot ID的話,新創建的硬盤會具有該快照的數據。

硬盤創建完畢后如下圖所示。

目前它的狀態是可用的,如果將其附加到EC2實例則會變為in-use。

點擊Action按鈕并選擇Attach Volume命令,可以將該硬盤附加到EC2實例上。

在該界面中選擇實例名及映射的設備地址,然后附加。

可以看到該硬盤狀態已經發生改變。

那么再回到終端中查看磁盤情況。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.1G  6.6G  14% /
devtmpfs        486M   60K  486M   1% /dev
tmpfs           499M     0  499M   0% /dev/shm

跟以前的一模一樣,沒有看到新添加的20G硬盤。這是怎么回事那?這是因為你雖然給機器添加了一塊硬盤,但是還沒有格式化和創建文件系統,并將文件系統添加到EC2的文件系統樹上來。

我們換另一個命令來查看存儲情況。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0  20G  0 disk

這里可以看到有一塊20G的大硬盤xvdf,但是沒有MOUNTPOINT,這個MOUNTPOINT你可以理解為EC2實例上針對這個硬盤的根地址。

細心的讀者可能會發現我們附加硬盤時輸入的地址是/dev/sdf,為什么命令行中顯示的是xvdf那?這是因為調皮的操作系統內核給改了,不同的Linux發行版其修改后的地址也會不太一樣。

使用file命令來查看該塊硬盤有沒有建立文件系統。

1
2
[ec2-user@ip-172-31-17-37 ~]$ sudo file -s /dev/xvdf
/dev/xvdf: data

如果輸出是data,說明該塊硬盤還未創建文件系統。

使用下述命令來給xvdf來創建文件系統。

1
[ec2-user@ip-172-31-17-37 ~]$ sudo mkfs -t ext4 /dev/xvdf

然后再用file命令確認。

1
2
[ec2-user@ip-172-31-17-37 ~]$ sudo file -s /dev/xvdf
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=1e14ec91-156a-4eb5-8846-cb5f2fa51b64 (extents) (large files) (huge files)

bash

可以看到該塊硬盤已經建立了ext4格式的文件系統。

接下來要將該文件系統加入到當前實例的文件系統樹中,這里要使用mount命令。

1
2
[ec2-user@ip-172-31-17-37 ~]$ sudo mkdir /boot2
[ec2-user@ip-172-31-17-37 ~]$ sudo mount /dev/xvdf /boot2

搞定,現在看看EC2實例的存儲情況。

1
2
3
4
5
[ec2-user@ip-172-31-17-37 ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0  20G  0 disk /boot2

可以在/boot2目錄下隨意創建文件和文件夾了。

這里并不是萬事大吉的時候,我們需要將該MOUNTPOINT加入到系統文件中,要不然系統重啟后還是找不到該硬盤。編輯/etc/fstab文件,在其中加入以下行。

1
/dev/xvdf       /data   ext4    defaults,nofail        0       2

這樣就不怕重啟的時候丟失該MOUNTPOINT了。添加完畢以后可以試一下fstab文件是否能正常運行。

1
[ec2-user@ip-172-31-17-37 ~]$ sudo mount -a

如果沒有錯誤就一切萬事大吉,如果有錯誤而你重啟了電腦的話,你就等著哭吧。

這是第一個任務,第二任務是給現有硬盤創建快照,非常簡單。回到Volumes控制面板,選擇Action里的Create Snapshot按鈕。

等一會snapshot就會創建成功。


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()