iaasクラウドを支える基礎技術 演習編_v1_0

32
中井悦司 Twitter @enakai00 オープンクラウド・キャンパス Eucalyptusに学ぶ IaaSクラウドを支えるインフラ技術 《edubase Cloud 演習編》

Upload: etsuji-nakai

Post on 07-Jul-2015

1.357 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: IaaSクラウドを支える基礎技術 演習編_v1_0

中井悦司Twitter @enakai00

オープンクラウド・キャンパス

Eucalyptusに学ぶIaaSクラウドを支えるインフラ技術

《edubase Cloud 演習編》

Page 2: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus2

IaaSクラウドを支えるインフラ技術

目次

事前準備と環境確認

ループバックデバイスの活用

SSH公開鍵認証設定

GlusterFSの利用

Page 3: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus3

IaaSクラウドを支えるインフラ技術

事前準備と環境確認

Page 4: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus4

IaaSクラウドを支えるインフラ技術

事前準備

仮想マシンを作成して、ホストネームを設定します。– クラウドクライアントからゲストOS「misc/CentOS56 GlusterFS」、インスタンスタイプ

「m1.small」の仮想マシンを3個起動します。SSH接続ができるように、セキュリティグループを適切に設定しておいてください。

– クラウドクライアントから仮想マシンのシェルを起動して、ホストネームの設定を行った後に、一度、シェルからログアウトします。

– 再度、シェルを起動して、設定したホストネーム(vm01、vm02、vm03)がシェルのプロンプトに表示されることを確認します。

• ホストネームの変更は必須ではありませんが、ここでは操作対象の仮想マシンを間違えないために行っています。コマンドを実行する際は、シェルのプロンプトを見て、正しい操作対象の仮想マシンであることを必ず確認してください。

– それぞれの仮想マシンの/etc/hostsを編集して、3個の仮想マシンそれぞれのプライベートIPに対応するホストネームを記載します。

• 3個の仮想マシンで共通の内容になります。10.3.4.Xの部分は、vm01〜vm03のプライベートIPです。環境に応じて値を変更してください。各仮想マシンのプライベートIPは、”ifconfig eth0”で確認します。

[root@localhost ~]# hostname vm01 ← 3個の仮想マシンについて、vm01、vm02、vm03を設定[root@localhost ~]# echo "HOSTNAME=vm01" >> /etc/sysconfig/network

↑ 3個の仮想マシンについて、vm01、vm02、vm03を設定[root@localhost ~]# exit

127.0.0.1 localhost.localdomain localhost10.3.4.2 vm0110.3.4.3 vm0210.3.4.4 vm03

Page 5: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus5

IaaSクラウドを支えるインフラ技術

環境確認 (1)

仮想マシンのNICに付与されたIPアドレスを確認します。

– 質問:仮想マシンのパブリックIPは、仮想マシンのどのNICにも付与されていません。これは、なぜでしょうか?

[root@vm01 ~]# ifconfigeth0 Link encap:Ethernet HWaddr D0:0D:4E:CA:0A:2B inet addr:10.3.4.2 Bcast:10.3.4.127 Mask:255.255.255.128 inet6 addr: fe80::d20d:4eff:feca:a2b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:442 errors:0 dropped:0 overruns:0 frame:0 TX packets:289 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:46537 (45.4 KiB) TX bytes:41032 (40.0 KiB)

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)

Page 6: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus6

IaaSクラウドを支えるインフラ技術

環境確認 (2)

仮想マシンで実行中のLinuxカーネルのバージョンとインストールされているカーネルのバージョンを確認します。

– 質問:GRUBの設定を修正して、起動カーネルを変更した後に仮想マシンを再起動します。    ところが、再起動後も先と同じバージョンのカーネルで起動します。これは、なぜでしょうか?

[root@vm01 ~]# uname -aLinux vm01 2.6.18-238.9.1.el5xen #1 SMP Tue Apr 12 18:53:56 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux[root@vm01 ~]# rpm -qa | grep kernelkernel-xen-2.6.18-274.7.1.el5kernel-xen-2.6.18-238.9.1.el5

default=1 ← 「default=0」から「default=1」に変更timeout=10title CentOS (2.6.18-238.9.1.el5xen)root (hd0,0) kernel /boot/vmlinuz-2.6.18-238.9.1.el5xen console=xvc0 root=/dev/sda1 roinitrd /boot/initrd-2.6.18-238.9.1.el5xen.imgtitle CentOS (2.6.18-274.7.1.el5xen)root (hd0,0) kernel /boot/vmlinuz-2.6.18-274.7.1.el5xen console=xvc0 root=/dev/sda1 roinitrd /boot/initrd-2.6.18-274.7.1.el5xen.img

[root@vm01 ~]# vi /boot/grub/grub.conf ← 起動カーネルの指定を「default=1」に変更[root@vm01 ~]# reboot

Page 7: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus7

IaaSクラウドを支えるインフラ技術

ループバックデバイスの活用

Page 8: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus8

IaaSクラウドを支えるインフラ技術

パーティションの無いディスクイメージファイルの利用 (1)

※ このセクションの作業はvm01で行います。

パーティションを持たないディスクイメージファイルを取り扱います。– 100MBのディスクイメージファイルvolume01.imgを作成して、ループバックデバイスに紐付けた

後に、ext3でフォーマットします。

[root@vm01 ~]# dd if=/dev/zero of=/opt/volume01.img bs=1M count=100100+0 records in100+0 records out104857600 bytes (105 MB) copied, 0.177533 seconds, 591 MB/s

[root@vm01 ~]# losetup -f /opt/volume01.img[root@vm01 ~]# losetup -a/dev/loop0: [0801]:477949 (/opt/volume01.img)

[root@vm01 ~]# mke2fs -j /dev/loop0mke2fs 1.39 (29-May-2006)Filesystem label=OS type: LinuxBlock size=1024 (log=0)(中略)This filesystem will be automatically checked every 32 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.

Page 9: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus9

IaaSクラウドを支えるインフラ技術

パーティションの無いディスクイメージファイルの利用 (2)

– マウントポイント/mnt/imageを作成して、先のディスクイメージファイルをマウントした後に、ファイルを作成してみます。

– ファイルシステムをアンマウントして、ループバックデバイスとのひも付けを一旦、解除します。

[root@vm01 ~]# mkdir /mnt/image[root@vm01 ~]# mount /dev/loop0 /mnt/image[root@vm01 ~]# date > /mnt/image/test.txt[root@vm01 ~]# cat /mnt/image/test.txt 2011年 10月 31日 月曜日 21:07:18 JST

[root@vm01 ~]# umount /mnt/image/[root@vm01 ~]# losetup -d /dev/loop0[root@vm01 ~]# losetup -a

Page 10: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus10

IaaSクラウドを支えるインフラ技術

パーティションの無いディスクイメージファイルの利用 (3)

ディスクイメージファイルをloopオプションで直接にマウントして使用します。– 先のディスクイメージファイルをloopオプションでマウントして、先ほど作成したファイルが見え

ることを確認します。

– この時、自動的にループバックデバイスとのひも付けが行われています。

– アンマウントすると、ループバックデバイスとのひも付けが解除されることを確認します。

[root@vm01 ~]# mount -o loop /opt/volume01.img /mnt/image/[root@vm01 ~]# dfFilesystem 1K-ブロック 使用 使用可 使用% マウント位置/dev/sda1 4128448 3168820 749916 81% //dev/sda2 503780 10545 467226 3% /mnt/opt/volume01.img 99150 5665 88365 7% /mnt/image[root@vm01 ~]# ls /mnt/image/lost+found test.txt[root@vm01 ~]# cat /mnt/image/test.txt 2011年 10月 31日 月曜日 21:07:18 JST

[root@vm01 ~]# losetup -a/dev/loop0: [0801]:329044 (/opt/volume01.img)

[root@vm01 ~]# umount /mnt/image/[root@vm01 ~]# losetup -a

Page 11: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus11

IaaSクラウドを支えるインフラ技術

パーティションの有るディスクイメージファイルの利用 (1)

パーティションを持つディスクイメージファイルを取り扱います。– 100MBのディスクイメージファイルvolume02.imgを作成して、ループバックデバイスに紐付けた

後、ループバックデバイスを指定して、ディスクパーティションを作成します。

[root@vm01 ~]# dd if=/dev/zero of=/opt/volume02.img bs=1M count=100100+0 records in100+0 records out104857600 bytes (105 MB) copied, 0.178868 seconds, 586 MB/s

[root@vm01 ~]# losetup -f /opt/volume02.img [root@vm01 ~]# losetup -a/dev/loop0: [0801]:507994 (/opt/volume02.img)

[root@vm01 ~]# fdisk /dev/loop0(中略)コマンド (m でヘルプ): nコマンドアクション e 拡張 p 基本領域 (1-4)p領域番号 (1-4): 1最初 シリンダ (1-12, default 1): 1終点 シリンダ または +サイズ または +サイズM または +サイズK (1-12, default 12): 6

コマンド (m でヘルプ): nコマンドアクション e 拡張 p 基本領域 (1-4)p領域番号 (1-4): 2最初 シリンダ (7-12, default 7): 7終点 シリンダ または +サイズ または +サイズM または +サイズK (7-12, default 12): 12

Page 12: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus12

IaaSクラウドを支えるインフラ技術

パーティションの有るディスクイメージファイルの利用 (2)

– 作成したパーティションをさらにマッピングして、ext3でフォーマットします。

コマンド (m でヘルプ): p

Disk /dev/loop0: 104 MB, 104857600 bytes255 heads, 63 sectors/track, 12 cylindersUnits = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System/dev/loop0p1 1 6 48163+ 83 Linux/dev/loop0p2 7 12 48195 83 Linux

コマンド (m でヘルプ): wq領域テーブルは交換されました!(以下省略)

[root@vm01 ~]# kpartx -a /dev/loop0 [root@vm01 ~]# kpartx -l /dev/loop0 loop0p1 : 0 96327 /dev/loop0 63loop0p2 : 0 96390 /dev/loop0 96390

[root@vm01 ~]# mke2fs -j /dev/mapper/loop0p1mke2fs 1.39 (29-May-2006)(中略)This filesystem will be automatically checked every 26 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@vm01 ~]# mke2fs -j /dev/mapper/loop0p2mke2fs 1.39 (29-May-2006)(中略)This filesystem will be automatically checked every 29 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.

Page 13: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus13

IaaSクラウドを支えるインフラ技術

パーティションの有るディスクイメージファイルの利用 (3)

– パーティションを1つをマウントします。

– マウント先のディレクトリにファイルが作成できることを確認して、アンマウントした後に、マッピングの解除とループバックデバイスとの紐付けの解除を行います。

[root@vm01 ~]# mount /dev/mapper/loop0p1 /mnt/image/[root@vm01 ~]# dfFilesystem 1K-ブロック 使用 使用可 使用% マウント位置/dev/sda1 4128448 2603628 1315108 67% //dev/sda2 503780 10545 467226 3% /mnt/dev/mapper/loop0p1 46633 4880 39345 12% /mnt/image

[root@vm01 ~]# date > /mnt/image/test.txt[root@vm01 ~]# cat /mnt/image/test.txt 2011年 10月 31日 月曜日 17:46:56 JST[root@vm01 ~]# umount /mnt/image/[root@vm01 ~]# kpartx -d /dev/loop0[root@vm01 ~]# losetup -d /dev/loop0

Page 14: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus14

IaaSクラウドを支えるインフラ技術

SSH公開鍵認証設定

Page 15: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus15

IaaSクラウドを支えるインフラ技術

SSHクライアントの構成

※ このセクションの作業はvm01で行います。

vm01をSSHクライアントとして構成します。– 接続元となるユーザuser01を作成して、user01の鍵ペアを作成します。

– 作成した鍵ペアの公開鍵の内容を表示します。

• 画面上は改行されていますが、公開鍵の内容は、実際には1行のテキスト文です。この内容を端末画面から、テキストエディタなどにコピーしておきます。

[root@vm01 ~]# adduser user01[root@vm01 ~]# su – user01[user01@vm01 ~]$ ssh-keygen -N "" -f ~/.ssh/user01keyGenerating public/private rsa key pair.Created directory '/home/user01/.ssh'.Your identification has been saved in /home/user01/.ssh/user01key.Your public key has been saved in /home/user01/.ssh/user01key.pub.The key fingerprint is:6f:1f:39:b1:35:e5:9e:9a:f6:36:b9:12:a2:4c:b9:a9 user01@vm01

[root@vm01 ~]# adduser user01[root@vm01 ~]# su - user01[user01@vm01 ~]$ ssh-keygen -N "" -f ~/.ssh/user01keyGenerating public/private rsa key pair.Created directory '/home/user01/.ssh'.Your identification has been saved in /home/user01/.ssh/user01key.Your public key has been saved in /home/user01/.ssh/user01key.pub.The key fingerprint is:6f:1f:39:b1:35:e5:9e:9a:f6:36:b9:12:a2:4c:b9:a9 user01@vm01

[user01@vm01 ~]$ cat .ssh/user01key.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7wDmgrAf4culT20haVdFXK80rYJJ4WINewK4AEh5Cpc25csYEDgwVEkNCVoQBc7Jl3r0Zom7ppGFv0lnCjoNQzd8tFdUCHUroIEkBOgHbmErj6uCC/BCYf2VmVzkvE5PdtN442ySTi/dfjoaluzflITTK2zrmCnAeXHndehMrrczewFucADBGJl8SwAqh8m8bxiFmL3CfaaF/yZ0NpaD0U7M4t/cS907DjdNSCcd6mxXk2pNS4/Wz6ebRSIJLb3vMbBmNEShpZaTbIrs8PpNUi3l8tlgzjMJTTpBPwoCkhzdR7PBm+xkgMzLFUiY7LuNXm9Fs+dvTkTRTLoOHmToyQ== user01@vm01

Page 16: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus16

IaaSクラウドを支えるインフラ技術

SSHサーバの構成

※ このセクションの作業はvm02、vm03で行います。

2台の仮想マシンvm02、vm03をSSH接続先のサーバとして構成します。– vm03のシェルを起動して、ホスト鍵を再作成します。

• 同じマシンイメージから起動した仮想マシンは、ホスト鍵が同一になります。ここでは、vm02とvm03が異なるホスト鍵を持つようにするため、ホスト鍵の再作成を行います。

– vm02、vm03のそれぞれで、/root/.ssh/authorized_keysの末尾に先に確認した公開鍵(1行のテキスト)を追加します。

クラウドクライアントからElastic IPを取得して、vm02に割り当てます。• ここでは、割り当てられたElastic IPを157.1.147.138とします。この後の手順では、実際に割り当てられたIP

に置き換えて下さい。

[root@vm03 ~]# rm -f /etc/ssh/ssh_host_*[root@vm03 ~]# service sshd restartsshd を停止中: [ OK ]SSH1 RSA ホストキーを生成中: [ OK ]SSH2 RSA ホストキーを生成中: [ OK ]SSH2 DSAホストキーを生成中: [ OK ]sshd を起動中: [ OK ]

Page 17: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus17

IaaSクラウドを支えるインフラ技術

SSH接続の確認 (1)

※ このセクションの作業はvm01で行います。

公開鍵認証によるSSH接続を行います。– vm01のuser01からvm02のrootに、Elastic IPを指定して、SSH接続できることを確認します。

• 157.1.147.138の部分は、実際に割り当てられたElastic IPに変更します。

– 質問:接続時にyesで返答している質問は何を確認しているのでしょうか?– 質問:秘密鍵オプション(-i ~/.ssh/user01key)を指定しない場合はどのようになるでしょうか?– 同様に、vm01のuser01からvm03のrootに、vm03のPublic IPを指定して、SSH接続できることを

確認します。

[user01@vm01 ~]$ ssh -i ~/.ssh/user01key [email protected] authenticity of host '157.1.147.138 (157.1.147.138)' can't be established.RSA key fingerprint is 25:08:07:96:2e:85:e3:25:81:9d:f3:13:35:3d:59:fe.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '157.1.147.138' (RSA) to the list of known hosts.Last login: Mon Oct 31 17:30:20 2011 from 136.187.36.110[root@vm02 ~]# exitlogout

Page 18: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus18

IaaSクラウドを支えるインフラ技術

SSH接続の確認 (2)

同じIPアドレスが別の仮想マシンに割り当てられた際の挙動を確認します。– クラウドクライアントから、vm02に割り当てたElastic IPを取り外して、このElastic IPをvm03に割り当てます。

– vm01のuser01からvm03のrootに、Elastic IPを指定して、SSH接続を行います。

• 157.1.147.138の部分は、実際に割り当てられたElastic IPに変更します。

– 質問:上の実行結果のようにSSH接続に失敗します。これはなぜでしょうか?また、どのようにすれば、この問題を回避して、SSH接続ができるようになるでしょうか?

[user01@vm01 ~]$ ssh -i ~/.ssh/user01key [email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host is69:6c:ab:bf:21:e7:6a:7d:8f:29:28:3d:a6:cc:14:65.Please contact your system administrator.Add correct host key in /home/user01/.ssh/known_hosts to get rid of this message.Offending key in /home/user01/.ssh/known_hosts:1RSA host key for 157.1.147.138 has changed and you have requested strict checking.Host key verification failed.

Page 19: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus19

IaaSクラウドを支えるインフラ技術

GlusterFSの利用

Page 20: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus20

IaaSクラウドを支えるインフラ技術

(参考)GlusterFSの導入手順

※ GlusterFSをソースコードから導入する場合は、このページの手順に従います。– 今回は、GlusterFSを導入済みのVMインスタンスを使用していますので、この手順は不要です。

– GlusterFSのコンパイルに必要な開発ルールと前提パッケージを導入します。

– インターネットからglusterfsとctypesのソースコードをダウンロードします。

– ctypesをインストールします。

– GlusterFSをインストールして、glusterdを起動します。

# yum -y groupinstall "Development Tools"# yum -y groupinstall "Development Libraries"# yum -y install fuse

# mkdir ~/work# cd ~/work# wget http://download.gluster.com/pub/gluster/glusterfs/qa-releases/3.3-beta-2/glusterfs-3.3beta2.tar.gz# wget http://downloads.sourceforge.net/project/ctypes/ctypes/1.0.2/ctypes-1.0.2.tar.gz

# cd ~/work# tar -xvzf ctypes-1.0.2.tar.gz# cd ctypes-1.0.2# ./setup.py install

# cd ~/work# tar -xvzf glusterfs-3.3beta2.tar.gz# cd glusterfs-3.3beta2# ./configure && make# make install# chkconfig glusterd on# service glusterd start

Page 21: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus21

IaaSクラウドを支えるインフラ技術

EBSの接続

※ このセクションの作業はvm01〜vm03で共通に行います。

仮想マシンにEBSを接続してマウントします。– クラウドクライアントから仮想マシンに2GBのEBSを/dev/sdhとして接続します。– EBSをext3でフォーマットして、/ebsにマウントします。

– EBSの中に次の3種類のディレクトリ(brick01〜brick03)を作成します。

[root@vm01 ~]# mke2fs -j /dev/sdhmke2fs 1.39 (29-May-2006)/dev/sdh is entire device, not just one partition!Proceed anyway? (y,n) y ← y[enter]を入力

[root@vm01 ~]# mkdir /ebs[root@vm01 ~]# mount /dev/sdh /ebs

[root@vm01 ~]# mkdir /ebs/brick01 /ebs/brick02 /ebs/brick03

Page 22: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus22

IaaSクラウドを支えるインフラ技術

GlusterFSの設定

※ このセクションの作業はvm01で行います。

GlusterFSのクラスタを構成します。– vm01からvm02とvm03をpeer登録して、クラスタを構成します。

– peerの状態を確認します。

[root@vm01 ~]# gluster peer probe vm02Probe successful

[root@vm01 ~]# gluster peer probe vm03Probe successful

[root@vm01 ~]# gluster peer statusNumber of Peers: 2

Hostname: vm02Uuid: 2b316dc6-5660-44f3-9f9f-0381c5c4ff52State: Peer in Cluster (Connected)

Hostname: vm03Uuid: 7f93be75-f0ab-4df3-9d8b-0773aa9468b9State: Peer in Cluster (Connected)

Page 23: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus23

IaaSクラウドを支えるインフラ技術

デフォルト・ボリュームの使用 (1)

※ このセクションの作業はvm01で行います。

デフォルトの分散配置構成のボリュームvol01を作成します。– 各仮想マシンの/ebs/brick01をブリックとして、ボリュームvol01を作成・開始します。

– ボリュームvol01の構成を確認します。

[root@vm01 ~]# gluster volume create vol01 vm01:/ebs/brick01 vm02:/ebs/brick01 vm03:/ebs/brick01Creation of volume vol01 has been successful. Please start the volume to access data.

[root@vm01 ~]# gluster volume start vol01Starting volume vol01 has been successful

[root@vm01 ~]# gluster volume info vol01 Volume Name: vol01Type: DistributeStatus: StartedNumber of Bricks: 3Transport-type: tcpBricks:Brick1: vm01:/ebs/brick01Brick2: vm02:/ebs/brick01Brick3: vm03:/ebs/brick01

Page 24: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus24

IaaSクラウドを支えるインフラ技術

デフォルト・ボリュームの使用 (2)

ボリュームvol01をマウントして、ファイルを作成します。– ボリュームvol01を/data01にマウントします。

– /data01の容量を確認します。

• vm01〜vm03それぞれの2GBのEBSを結合しているので、6GBの容量になっていることが分かります。

– /data01/以下に多数のファイル(この例では900個)を作成します。

[root@vm01 ~]# cd /data01[root@vm01 data01]# for a in $(seq 100 999); do date > $a.txt; done[root@vm01 data01]# ls100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt102.txt 202.txt 302.txt 402.txt 502.txt 602.txt 702.txt 802.txt 902.txt(中略)198.txt 298.txt 398.txt 498.txt 598.txt 698.txt 798.txt 898.txt 998.txt199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt[root@vm01 data01]# ls | wc -l900

[root@vm01 ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 4128448 3122504 796232 80% //dev/sda2 503780 10544 467227 3% /mnt/dev/sdh 2071224 68720 1897288 4% /ebsglusterfs#localhost:/vol01 6213632 206208 5691776 4% /data01

[root@vm01 ~]# mkdir /data01[root@vm01 ~]# mount -t glusterfs localhost:/vol01 /data01

Page 25: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus25

IaaSクラウドを支えるインフラ技術

デフォルト・ボリュームの使用 (3)

/data01内のファイルの実体は、vm01〜vm03の/ebs/brick01/以下にファイル単位で分散配置されていることを確認します。

– vm01〜vm03の/ebs/brick01/以下のファイルを確認します。

[root@vm01 ~]# ls /ebs/brick01100.txt 194.txt 262.txt 356.txt 440.txt 509.txt 580.txt 676.txt 763.txt 844.txt 936.txt103.txt 195.txt 263.txt 358.txt 441.txt 511.txt 581.txt 679.txt 764.txt 846.txt 937.txt(中略)190.txt 257.txt 354.txt 433.txt 505.txt 577.txt 671.txt 758.txt 842.txt 929.txt191.txt 259.txt 355.txt 438.txt 507.txt 578.txt 673.txt 759.txt 843.txt 935.txt[root@vm01 ~]# ls /ebs/brick01 | wc -l277

[root@vm02 ~]# ls /ebs/brick01101.txt 201.txt 300.txt 385.txt 483.txt 604.txt 693.txt 802.txt 894.txt105.txt 204.txt 303.txt 388.txt 486.txt 605.txt 700.txt 804.txt 895.txt(中略)198.txt 294.txt 383.txt 478.txt 597.txt 682.txt 795.txt 887.txt199.txt 299.txt 384.txt 482.txt 600.txt 686.txt 800.txt 888.txt[root@vm02 ~]# ls /ebs/brick01 | wc -l302

[root@vm03 ~]# ls /ebs/brick01102.txt 189.txt 309.txt 428.txt 533.txt 628.txt 735.txt 836.txt 931.txt106.txt 202.txt 310.txt 431.txt 534.txt 633.txt 738.txt 841.txt 932.txt(中略)186.txt 307.txt 420.txt 525.txt 624.txt 722.txt 832.txt 926.txt188.txt 308.txt 427.txt 526.txt 627.txt 731.txt 833.txt 927.txt[root@vm03 ~]# ls /ebs/brick01 | wc -l321

Page 26: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus26

IaaSクラウドを支えるインフラ技術

ストライピング・ボリュームの使用 (1)

※ このセクションの作業はvm01で行います。

ストライピング構成のボリュームvol02を作成します。– 各仮想マシンの/ebs/brick02をブリックとして、ボリュームvol02を作成・開始します。

– ボリュームvol02の構成を確認します。

[root@vm01 ~]# gluster volume create vol02 stripe 3 vm01:/ebs/brick02 vm02:/ebs/brick02 vm03:/ebs/brick02Creation of volume vol02 has been successful. Please start the volume to access data.

[root@vm01 ~]# gluster volume start vol02Starting volume vol02 has been successful

[root@vm01 ~]# gluster volume info vol02 Volume Name: vol02Type: StripeStatus: StartedNumber of Bricks: 3Transport-type: tcpBricks:Brick1: vm01:/ebs/brick02Brick2: vm02:/ebs/brick02Brick3: vm03:/ebs/brick02

Page 27: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus27

IaaSクラウドを支えるインフラ技術

ストライピング・ボリュームの使用 (2)

ボリュームvol02をマウントして、ファイルを作成します。– ボリュームvol02を/data02にマウントします。

– /data02の容量を確認します。

• vm01〜vm03それぞれの2GBのEBSを結合しているので、6GBの容量になっていることが分かります。

– /data02/以下に多数のファイル(この例では900個)を作成します。[root@vm01 ~]# cd /data02[root@vm01 data02]# for a in $(seq 100 999); do date > $a.txt; done[root@vm01 data02]# ls100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt102.txt 202.txt 302.txt 402.txt 502.txt 602.txt 702.txt 802.txt 902.txt(中略)198.txt 298.txt 398.txt 498.txt 598.txt 698.txt 798.txt 898.txt 998.txt199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt[root@vm01 data02]# ls | wc -l900

[root@vm01 ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 4128448 3122816 795920 80% //dev/sda2 503780 10544 467227 3% /mnt/dev/sdh 2071224 78168 1887840 4% /ebsglusterfs#localhost:/vol01 6213632 227840 5670144 4% /data01glusterfs#localhost:/vol02 6213632 227840 5670144 4% /data02

[root@vm01 ~]# mkdir /data02[root@vm01 ~]# mount -t glusterfs localhost:/vol02 /data02

Page 28: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus28

IaaSクラウドを支えるインフラ技術

ストライピング・ボリュームの使用 (3)

/data01内のファイルの実体は、vm01〜vm03の/ebs/brick02/以下に分散配置されていることを確認します。

– vm01〜vm03の/ebs/brick02/以下のファイルを確認します。

• vm02、vm03の結果は省略します。• ストライピング・ボリュームでは、1つのファイルが3つに分割されて、各仮想マシンに分散配置されます。そ

のため、各仮想マシンの/ebs/brick02/以下には同じファイル名のファイルが存在します。(ファイルの内容はそれぞれ異なります。)

[root@vm01 ~]# ls /ebs/brick02100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt102.txt 202.txt 302.txt 402.txt 502.txt 602.txt 702.txt 802.txt 902.txt(中略)198.txt 298.txt 398.txt 498.txt 598.txt 698.txt 798.txt 898.txt 998.txt199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt[root@vm01 ~]# ls /ebs/brick02 | wc -l900

Page 29: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus29

IaaSクラウドを支えるインフラ技術

レプリケーション・ボリュームの使用 (1)

※ このセクションの作業はvm01で行います。

レプリケーション構成のボリュームvol03を作成します。– 各仮想マシンの/ebs/brick03をブリックとして、ボリュームvol03を作成・開始します。

– ボリュームvol03の構成を確認します。

[root@vm01 ~]# gluster volume create vol03 replica 3 vm01:/ebs/brick03 vm02:/ebs/brick03 vm03:/ebs/brick03Creation of volume vol03 has been successful. Please start the volume to access data.

[root@vm01 ~]# gluster volume start vol03Starting volume vol03 has been successful

# gluster volume info vol03 Volume Name: vol03Type: ReplicateStatus: StartedNumber of Bricks: 3Transport-type: tcpBricks:Brick1: vm01:/ebs/brick03Brick2: vm02:/ebs/brick03Brick3: vm03:/ebs/brick03

Page 30: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus30

IaaSクラウドを支えるインフラ技術

レプリケーション・ボリュームの使用 (2)

ボリュームvol03をマウントして、ファイルを作成します。– ボリュームvol03を/data03にマウントします。

– /data03の容量を確認します。

• vm01〜vm03それぞれの2GBのEBSでレプリケーションしているので、2GBの容量になっています。

– /data03/以下に多数のファイル(この例では900個)を作成します。[root@vm01 ~]# cd /data03[root@vm01 data03]# for a in $(seq 100 999); do date > $a.txt; done[root@vm01 data03]# ls(中略)198.txt 298.txt 398.txt 498.txt 598.txt 698.txt 798.txt 898.txt 998.txt199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt[root@vm01 data03]# ls | wc -l900

[root@vm01 ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 4128448 3122908 795828 80% //dev/sda2 503780 10544 467227 3% /mnt/dev/sdh 2071224 78172 1887836 4% /ebsglusterfs#localhost:/vol01 6213632 227840 5670144 4% /data01glusterfs#localhost:/vol02 6213632 227840 5670144 4% /data02glusterfs#localhost:/vol03 2071168 78208 1887744 4% /data03

[root@vm01 ~]# mkdir /data03[root@vm01 ~]# mount -t glusterfs localhost:/vol03 /data03

Page 31: IaaSクラウドを支える基礎技術 演習編_v1_0

Open Cloud Campus31

IaaSクラウドを支えるインフラ技術

レプリケーション・ボリュームの使用 (3)

/data01内のファイルの実体は、vm01〜vm03の/ebs/brick03/以下にレプリケーションされていることを確認します。

– vm01〜vm03の/ebs/brick03/以下のファイルを確認します。

• vm02、vm03の結果は省略します。• レプリケーション・ボリュームでは、1つのファイルが各仮想マシンにコピーされます。そのため、各仮想マシ

ンの/ebs/brick03/以下には同じファイル名のファイルが存在します。(ファイルの内容は同じです。)

[root@vm01 ~]# ls /ebs/brick03100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt102.txt 202.txt 302.txt 402.txt 502.txt 602.txt 702.txt 802.txt 902.txt(中略)198.txt 298.txt 398.txt 498.txt 598.txt 698.txt 798.txt 898.txt 998.txt199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt[root@vm01 ~]# ls /ebs/brick03 | wc -l900

Page 32: IaaSクラウドを支える基礎技術 演習編_v1_0

中井悦司Twitter @enakai00

オープンクラウド・キャンパス

これからもクラウドを支えるインフラ技術を学びましょう