前回までのあらすじ
こんにちは。新人若井さんが出来先輩の助けを借りながら、アマゾン ウェブ サービス(以下AWS)上でOracle DBを作成しようと言うこの企画。前回ではVNCを使った仮想マシンへのログイン、Oracleの要件に合わせたEC2のインスタンスタイプの変更を行いました。前回スワップ領域が足りないことから、ディスクを追加しましたので、続きをどうぞ。
若井 あらた (わかいあらた)
新人エンジニアで、今回データベース課に配属となった。本物語の主人公。
出来 益代 (でき ますよ)
中堅エンジニアで、データベース課に所属する。年齢は不詳。仕事熱心で、比較的後輩の面倒見もよいお姉さまタイプ。※ この物語はフィクションであり、登場する団体・人物などの名称はすべて架空のものです
EC2へディスクを追加する。
出来「『Elastic BLOCK STORE(以下EBS)』を4GBのボリュームを作って、稼働中のEC2への『Attach』が完了したら、次は追加したボリュームを利用できるようにOSの設定をする必要があるのよ。」
若井「今回は4GB全部をスワップ領域として利用するんですよね。」
出来「そうね。Oracleの推奨値が、現在の3.6GBのメモリの場合、スワップは同程度の大きさのスワップ領域となっているからね。」
若井「分かりました。」
出来「まずは、追加したディスクがOSで認識されているかどうか確認しましょう。」
[root@ip-172-31-24-192 ~]# cat /proc/partitions
major minor #blocks name
202 65 6291456 xvde1
202 144 4194304 xvdj
[root@ip-172-31-24-192 ~]#
若井「xvdjという4GBのディスクが認識されているみたいですね。」
出来「この状態だと、まだ何も初期化されていないから、まずはfdiskコマンドを使って、パーティションを作りましょう。」
[root@ip-172-31-24-192 ~]# fdisk /dev/xvdj
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xc7e4efe3.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help):
出来「fdiskコマンドはディスクに対して、いろいろな操作ができるの。mコマンドでヘルプが見れるから、確認しておきましょう。」
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
出来「まずは現状のディスクの状態を確認しましょう。pコマンドを入力して。」
Command (m for help): p
Disk /dev/xvdj: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc7e4efe3
Device Boot Start End Blocks Id System
Command (m for help):
出来「これが現状のディスクの状態ね。まだ何もパーティションが切られて いないから、一覧には何も出てないわ。じゃあ、パーティションを作成してみましょう。nコマンドで作成モードになって。」
Command (m for help): n
Command action
e extended
p primary partition (1-4)
出来「今回はprimary partitionを作成するわね。pコマンドを入力してパーティション番号には1を入力して。」
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
出来「次は開始シリンダ、終了シリンダの設定を入力するんだけど、今回は 、複数に分割はしないから、全てデフォルトのままで大丈夫よ。」
First cylinder (1-522, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-522, default 522):
Using default value 522
Command (m for help):
出来「作成できたら、もう一度、ディスクの状態を確認しましょう。」
Command (m for help): p
Disk /dev/xvdj: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc7e4efe3
Device Boot Start End Blocks Id System
/dev/xvdj1 1 522 4192933+ 83 Linux
Command (m for help):
出来「ディスクに新しいパーティション『/dev/xvdj1』が追加されていることが確認できるわね。このディスクをスワップ領域として使うためにtコマンドを使って、パーティションのタイプを82(Linuxスワップ)に変更するの。」
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
Command (m for help): p
Disk /dev/xvdj: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc7e4efe3
Device Boot Start End Blocks Id System
/dev/xvdj1 1 522 4192933+ 82 Linux swap / Solaris
Command (m for help):
出来「最後にこれまでやった変更を保存するために、wコマンドを使って、fdiskを終了して。」
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@ip-172-31-24-192 ~]#
出来「これでパーティションは完成ね。次にこのパーティションをスワップ領域にしましょう。まずはmkswapコマンドでスワップ領域を作成するわよ。」
[root@ip-172-31-24-192 ~]# mkswap /dev/xvdj1
Setting up swapspace version 1, size = 4192928 KiB
no label, UUID=cb96bf8d-1c61-4cc4-97d5-6d56ba0c4af2
[root@ip-172-31-24-192 ~]#
出来「次に作成したスワップ領域の有効化。」
[root@ip-172-31-24-192 ~]# swapon /dev/xvdj1
出来「これでスワップ領域の作成は完了よ。一旦、スワップ領域の確認をしてみましょうか。」
[root@ip-172-31-24-192 ~]# grep SwapTotal /proc/meminfo
SwapTotal: 4192924 kB
[root@ip-172-31-24-192 ~]#
若井「スワップ領域に4GB認識されていますね。」
出来「OK。じゃあこのスワップ領域が再起動しても、自動的にマウントされるように、『/etc/fstab』ファイルに今回の内容を追記して。」
若井「了解しました。追記します。」
[root@ip-172-31-24-192 ~]# vi /etc/fstab
[root@ip-172-31-24-192 ~]# cat /etc/fstab
LABEL=_/ / ext4 defaults 1 1
/dev/xvdb /mnt ext3 defaults,context=system_u:object_r:usr_t:s0 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
/dev/xvdj1 swap swap defaults 0 0 ←←←この行を追記
[root@ip-172-31-24-192 ~]#
若井「じゃあ確認の為に一回再起動しますね。」
[root@ip-172-31-24-192 ~]# shutdown -r now
若井「大丈夫ですね。自動でマウントされてます。」
出来「これで、スワップ領域も完了ね。次の要件の確認に移りましょうか。(第4話参照)」
出来「次は、/tmpのディスク容量の確認ね。」
若井「df -hの結果はこんな感じですね。」
[root@ip-172-31-24-192 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvde1 6.0G 2.7G 3.2G 47% /
none 1.9G 0 1.9G 0% /dev/shm
[root@ip-172-31-24-192 ~]#
出来「/tmpディレクトリは『/dev/xvde1』のディスク上に配置されているから、これは問題なさそうね。」
若井「じゃあ次の要件の確認は、ソフトウェア、データファイルのディスク要件ですけど、これは全く足りないですね。」
出来「そうね。スワップ領域を作成した要領で、もう一回ディスク追加しましょうか。今度は20GBのディスクを追加しましょう。」
若井「分かりました。まずは、『AWS マネージメント コンソール』から、EBSの作成とEC2への『Attach』をやります。」
※ この部分の手順に関しては第4回を参照して下さい。
若井「次は追加したディスクをOSで認識しているかどうか確認します。」
[root@ip-172-31-24-192 ~]# cat /proc/partitions
major minor #blocks name
202 65 6291456 xvde1
202 144 4194304 xvdj
202 145 4192933 xvdj1
202 160 20971520 xvdk
[root@ip-172-31-24-192 ~]#
若井「20GBのディスクが、『xvdk』として認識されました。」
出来「そうそう。今回もパーティションの作成は基本パーティションで大丈夫よ。だけど、今回はスワップ領域では無いから、パーティションタイプをスワップ領域に変更する必要はないわ。まずはパーティションの作成までやってみて。」
[root@ip-172-31-24-192 ~]# fdisk /dev/xvdk
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xf1a43be2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): p
Disk /dev/xvdk: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf1a43be2
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610
Command (m for help): p
Disk /dev/xvdk: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf1a43be2
Device Boot Start End Blocks Id System
/dev/xvdk1 1 2610 20964793+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@ip-172-31-24-192 ~]#
若井「はい。完了しました。」
出来「じゃあ、次は、追加したパーティションを初期化をしましょう。今回は『mkfs』コマンドで『ext4』というフォーマットで初期化するわ。これはしばらく時間が掛かるから一旦休憩にしましょうか。
若井「ふー。ちょっとコーヒー飲んでこよ。」
出来「あら、缶コーヒーなら奢るわよ」
若井「先輩、ありがとうございます!」
[root@ip-172-31-24-192 ~]# mkfs.ext4 /dev/xvdk1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241198 blocks
262059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:
done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@ip-172-31-24-192 ~]#
まだまだ、Oracleのインストール要件の確認は続きます。次回へ続く。
執筆者紹介
山口 正寛(YAMAGUCHI Masahiro)
株式会社システムサポート 東京支社インフラソリューション事業部所属。
同社が得意とするOracleデータベースのエンジニアで、大規模DWHのDB管理者、DBコンサルタントなどを経験。また、同社の無料セミナーの企画にも携わる。
今回、機器がなくても気軽に環境を構築し検証したいというかた向けに AWS上でOracleデータベースを構築することをストーリー調で記載する。 尚、同社はAWSを用いたクラウド工房 powered by AWSというプロダクトがあり、産学官連携でも活用している。