運営者プロフィール

【AWS】EBS Magneticを上限を超えて使う。1TB上限何てなんのその!

ども。
EBSはSSDで使うと16TBまで使う事が出来る様になりました。

【AWS発表】さらに大容量で高速なElastic Block Store(EBS)ボリューム

ですが、SSDはMagneticに比べるとやはり高価です。

§ 1か月あたりの料金(1024GBで換算)
Magnetic:$49.70
General Purpose(SSD):$99.40
Provisioned IOPS:$128.00

そもそも、AWSにはS3と呼ばれる堅牢で安価なストレージがありますが、少し癖があって使いにくかったりします。
そこで今回はMagneticのEBSをLVMを使って、EBS1個あたりの上限である1TBを越えてみたいと思います。

EBS作成(1TB×2)

awscliを使って東京リージョンに1TBのEBSを2個作成します。
awscliがインストールされていない場合は、下記のエントリで先にawscliをインストールしてください。
(CentOS7の場合のみですが・・・)

【AWS】awscliを入れてみた(CentOS7)

# aws ec2 create-volume --size 1024 --region ap-northeast-1 --availability-zone ap-northeast-1a --volume-type magnetic
{
"AvailabilityZone": "ap-northeast-1a",
"Encrypted": false,
"VolumeType": "standard",
"VolumeId": "<span style="color: #ff0000;">vol-xxxxxxxx</span>",
"State": "creating",
"SnapshotId": null,
"CreateTime": "2015-04-01T13:00:28.169Z",
"Size": 1024
}
# aws ec2 create-volume --size 1024 --region ap-northeast-1 --availability-zone ap-northeast-1a --volume-type magnetic
{
"AvailabilityZone": "ap-northeast-1a",
"Encrypted": false,
"VolumeType": "standard",
"VolumeId": "<span style="color: #ff0000;">vol-xxxxxxxx</span>",
"State": "creating",
"SnapshotId": null,
"CreateTime": "2015-04-01T13:04:17.095Z",
"Size": 1024
}

1TBのEBSを2個作成するので、上記を2回実行しています。

LVMインストール

下記のコマンドでlvmをインストールします。

# yum install -y lvm2 

EBSアタッチ

対象となるEC2インスタンスのIDを確認し、先ほど作成したEBSボリューム2個をアタッチします。

・インスタンスID確認

# curl http://169.254.169.254/latest/meta-data/instance-id

・EBSボリュームID確認

# aws ec2 describe-volumes --region ap-northeast-1 --filter "Name=size,Values=1024"

・EBSアタッチ(必要分実行)

# aws ec2 attach-volume --volume-id vol-xxxxxxxx --instance-id i-xxxxxxxx

実行例)

# aws ec2 attach-volume --volume-id vol-xxxxxxxx --instance-id i-xxxxxxxx --device /dev/xvdb
{
"AttachTime": "2015-04-01T13:29:32.855Z",
"InstanceId": "i-xxxxxxxx",
"VolumeId": "vol-xxxxxxxx",
"State": "attaching",
"Device": "/dev/xvdb"
}

EBSをLVM用にフォーマット

マウントしたEBSのファイルシステムをLVMに変更します。

・アタッチ確認

# fdisk -l

Disk /dev/xvda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000aec37

Device Boot Start End Blocks Id System
/dev/xvda1 * 2048 62910539 31454246 83 Linux

Disk /dev/xvdb: 1099.5 GB, 1099511627776 bytes, 2147483648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/xvdc: 1099.5 GB, 1099511627776 bytes, 2147483648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

・LVMに変更

# fdisk /dev/xvdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x845ebeeb.

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):<Enter>

First sector (2048-2147483647, default 2048):<Enter>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2147483647, default 2147483647):<Enter>
Using default value 2147483647
Partition 1 of type Linux and of size 1024 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): p

Disk /dev/xvdb: 1099.5 GB, 1099511627776 bytes, 2147483648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x845ebeeb

Device Boot Start End Blocks Id System
/dev/xvdb1 2048 2147483647 1073740800 8e Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

/dev/xvdb、/dev/xvdcと2回繰り返します。

LVM設定

・PV(物理ボリューム)作成

# pvcreate /dev/xvdb1 /dev/xvdc1
Physical volume "/dev/xvdb1" successfully created
Physical volume "/dev/xvdc1" successfully created

・VG(ボリュームグループ)作成

# vgcreate vg01 /dev/xvdb1 /dev/xvdc1
Volume group "vg01" successfully created

・LV(論理ボリューム)作成

# lvcreate -l 100%FREE -n data vg01
Logical volume "data" created

・ファイルシステム作成

# mkfs.xfs /dev/vg01/data
meta-data=/dev/vg01/data isize=256 agcount=4, agsize=134217216 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=536868864, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0/
log =internal log bsize=4096 blocks=262143, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

・マウント

# mount /dev/vg01/data /mnt/

・確認

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 30G 2.4G 28G 8% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 497M 13M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/mapper/vg01-data 2.0T 33M 2.0T 1% /mnt ←2TBの領域がマウント出来た!

如何だったでしょうか。
LVMを使えばEBS Magneticの上限である1TBを越えた領域を確保する事が出来ます。
ただし、EBSスナップショット取得の際にはioを停止させる「xfs_freeze」といった処理を入れるなど、面倒な面もありますので素直にS3を使った方が良いかも知れませんが、EBS Magneticで2TB以上使いたい場合は重宝すると思いますので用途によって使い分けると良いかも知れないですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)