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

1,650 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,650
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
33
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. オープンクラウド・キャンパス Eucalyptusに学ぶIaaSクラウドを支えるインフラ技術 《edubase Cloud 演習編》 中井悦司 Twitter @enakai00
  2. 2. IaaSクラウドを支えるインフラ技術目次 事前準備と環境確認 ループバックデバイスの活用 SSH公開鍵認証設定 GlusterFSの利用2 Open Cloud Campus
  3. 3. IaaSクラウドを支えるインフラ技術 事前準備と環境確認3 Open Cloud Campus
  4. 4. IaaSクラウドを支えるインフラ技術事前準備 仮想マシンを作成して、ホストネームを設定します。 – クラウドクライアントからゲストOS「misc/CentOS56 GlusterFS」、インスタンスタイプ 「m1.small」の仮想マシンを3個起動します。SSH接続ができるように、セキュリティグループを 適切に設定しておいてください。 – クラウドクライアントから仮想マシンのシェルを起動して、ホストネームの設定を行った後に、一 度、シェルからログアウトします。 [root@localhost ~]# hostname vm01 ← 3個の仮想マシンについて、vm01、vm02、vm03を設定 [root@localhost ~]# echo "HOSTNAME=vm01" >> /etc/sysconfig/network ↑ 3個の仮想マシンについて、vm01、vm02、vm03を設定 [root@localhost ~]# exit – 再度、シェルを起動して、設定したホストネーム(vm01、vm02、vm03)がシェルのプロンプト に表示されることを確認します。 • ホストネームの変更は必須ではありませんが、ここでは操作対象の仮想マシンを間違えないために行っていま す。コマンドを実行する際は、シェルのプロンプトを見て、正しい操作対象の仮想マシンであることを必ず確 認してください。 – それぞれの仮想マシンの/etc/hostsを編集して、3個の仮想マシンそれぞれのプライベートIPに対 応するホストネームを記載します。 127.0.0.1 localhost.localdomain localhost 10.3.4.2 vm01 10.3.4.3 vm02 10.3.4.4 vm03 • 3個の仮想マシンで共通の内容になります。10.3.4.Xの部分は、vm01〜vm03のプライベートIPです。環境に応 じて値を変更してください。各仮想マシンのプライベートIPは、”ifconfig eth0”で確認します。4 Open Cloud Campus
  5. 5. IaaSクラウドを支えるインフラ技術環境確認 (1) 仮想マシンのNICに付与されたIPアドレスを確認します。 [root@vm01 ~]# ifconfig eth0 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) – 質問:仮想マシンのパブリックIPは、仮想マシンのどのNICにも付与されていません。これは、なぜ でしょうか?5 Open Cloud Campus
  6. 6. IaaSクラウドを支えるインフラ技術環境確認 (2) 仮想マシンで実行中のLinuxカーネルのバージョンとインストールされているカーネルの バージョンを確認します。 [root@vm01 ~]# uname -a Linux 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 kernel kernel-xen-2.6.18-274.7.1.el5 kernel-xen-2.6.18-238.9.1.el5 – 質問:GRUBの設定を修正して、起動カーネルを変更した後に仮想マシンを再起動します。     ところが、再起動後も先と同じバージョンのカーネルで起動します。これは、なぜでしょうか? [root@vm01 ~]# vi /boot/grub/grub.conf ← 起動カーネルの指定を「default=1」に変更 [root@vm01 ~]# reboot default=1 ← 「default=0」から「default=1」に変更 timeout=10 title 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 ro initrd /boot/initrd-2.6.18-238.9.1.el5xen.img title 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 ro initrd /boot/initrd-2.6.18-274.7.1.el5xen.img6 Open Cloud Campus
  7. 7. IaaSクラウドを支えるインフラ技術 ループバックデバイスの活用7 Open Cloud Campus
  8. 8. IaaSクラウドを支えるインフラ技術パーティションの無いディスクイメージファイルの利用 (1) ※ このセクションの作業はvm01で行います。 パーティションを持たないディスクイメージファイルを取り扱います。 – 100MBのディスクイメージファイルvolume01.imgを作成して、ループバックデバイスに紐付けた 後に、ext3でフォーマットします。 [root@vm01 ~]# dd if=/dev/zero of=/opt/volume01.img bs=1M count=100 100+0 records in 100+0 records out 104857600 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/loop0 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=1024 (log=0) (中略) This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.8 Open Cloud Campus
  9. 9. 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 -a9 Open Cloud Campus
  10. 10. IaaSクラウドを支えるインフラ技術パーティションの無いディスクイメージファイルの利用 (3) ディスクイメージファイルをloopオプションで直接にマウントして使用します。 – 先のディスクイメージファイルをloopオプションでマウントして、先ほど作成したファイルが見え ることを確認します。 [root@vm01 ~]# mount -o loop /opt/volume01.img /mnt/image/ [root@vm01 ~]# df Filesystem 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 -a10 Open Cloud Campus
  11. 11. IaaSクラウドを支えるインフラ技術パーティションの有るディスクイメージファイルの利用 (1) パーティションを持つディスクイメージファイルを取り扱います。 – 100MBのディスクイメージファイルvolume02.imgを作成して、ループバックデバイスに紐付けた 後、ループバックデバイスを指定して、ディスクパーティションを作成します。 [root@vm01 ~]# dd if=/dev/zero of=/opt/volume02.img bs=1M count=100 100+0 records in 100+0 records out 104857600 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): 1211 Open Cloud Campus
  12. 12. IaaSクラウドを支えるインフラ技術パーティションの有るディスクイメージファイルの利用 (2) コマンド (m でヘルプ): p Disk /dev/loop0: 104 MB, 104857600 bytes 255 heads, 63 sectors/track, 12 cylinders Units = シリンダ数 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 領域テーブルは交換されました! (以下省略) – 作成したパーティションをさらにマッピングして、ext3でフォーマットします。 [root@vm01 ~]# kpartx -a /dev/loop0 [root@vm01 ~]# kpartx -l /dev/loop0 loop0p1 : 0 96327 /dev/loop0 63 loop0p2 : 0 96390 /dev/loop0 96390 [root@vm01 ~]# mke2fs -j /dev/mapper/loop0p1 mke2fs 1.39 (29-May-2006) (中略) This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@vm01 ~]# mke2fs -j /dev/mapper/loop0p2 mke2fs 1.39 (29-May-2006) (中略) This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.12 Open Cloud Campus
  13. 13. IaaSクラウドを支えるインフラ技術パーティションの有るディスクイメージファイルの利用 (3) – パーティションを1つをマウントします。 [root@vm01 ~]# mount /dev/mapper/loop0p1 /mnt/image/ [root@vm01 ~]# df Filesystem 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/loop013 Open Cloud Campus
  14. 14. IaaSクラウドを支えるインフラ技術 SSH公開鍵認証設定14 Open Cloud Campus
  15. 15. IaaSクラウドを支えるインフラ技術SSHクライアントの構成 ※ このセクションの作業はvm01で行います。 vm01をSSHクライアントとして構成します。 – 接続元となるユーザuser01を作成して、user01の鍵ペアを作成します。 [root@vm01 ~]# adduser user01 [root@vm01 ~]# su – user01 - [user01@vm01 ~]$ ssh-keygen -N "" -f ~/.ssh/user01key Generating 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 AAAAB3NzaC1yc2EAAAABIwAAAQEA7wDmgrAf4culT20haVdFXK80rYJJ4WINewK4AEh5Cpc25csYEDgwVEkNCVoQBc 7Jl3r0Zom7ppGFv0lnCjoNQzd8tFdUCHUroIEkBOgHbmErj6uCC/BCYf2VmVzkvE5PdtN442ySTi/dfjoaluzflITTK2zrmCnA eXHndehMrrczewFucADBGJl8SwAqh8m8bxiFmL3CfaaF/yZ0NpaD0U7M4t/cS907DjdNSCcd6mxXk2pNS4/Wz6ebRSIJLb3vMb BmNEShpZaTbIrs8PpNUi3l8tlgzjMJTTpBPwoCkhzdR7PBm+xkgMzLFUiY7LuNXm9Fs+dvTkTRTLoOHmToyQ== user01@vm01 • 画面上は改行されていますが、公開鍵の内容は、実際には1行のテキスト文です。この内容を端末画面から、テ キストエディタなどにコピーしておきます。15 Open Cloud Campus
  16. 16. IaaSクラウドを支えるインフラ技術SSHサーバの構成 ※ このセクションの作業はvm02、vm03で行います。 2台の仮想マシンvm02、vm03をSSH接続先のサーバとして構成します。 – vm03のシェルを起動して、ホスト鍵を再作成します。 [root@vm03 ~]# rm -f /etc/ssh/ssh_host_* [root@vm03 ~]# service sshd restart sshd を停止中: [ OK ] SSH1 RSA ホストキーを生成中: [ OK ] SSH2 RSA ホストキーを生成中: [ OK ] SSH2 DSAホストキーを生成中: [ OK ] sshd を起動中: [ OK ] • 同じマシンイメージから起動した仮想マシンは、ホスト鍵が同一になります。ここでは、vm02とvm03が異な るホスト鍵を持つようにするため、ホスト鍵の再作成を行います。 – vm02、vm03のそれぞれで、/root/.ssh/authorized_keysの末尾に先に確認した公開鍵(1行のテ キスト)を追加します。 クラウドクライアントからElastic IPを取得して、vm02に割り当てます。 • ここでは、割り当てられたElastic IPを157.1.147.138とします。この後の手順では、実際に割り当てられたIP に置き換えて下さい。16 Open Cloud Campus
  17. 17. IaaSクラウドを支えるインフラ技術SSH接続の確認 (1) ※ このセクションの作業はvm01で行います。 公開鍵認証によるSSH接続を行います。 – vm01のuser01からvm02のrootに、Elastic IPを指定して、SSH接続できることを確認します。 [user01@vm01 ~]$ ssh -i ~/.ssh/user01key root@157.1.147.138 The authenticity of host 157.1.147.138 (157.1.147.138) cant 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)? yes Warning: 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 ~]# exit logout • 157.1.147.138の部分は、実際に割り当てられたElastic IPに変更します。 – 質問:接続時にyesで返答している質問は何を確認しているのでしょうか? – 質問:秘密鍵オプション(-i ~/.ssh/user01key)を指定しない場合はどのようになるでしょうか? – 同様に、vm01のuser01からvm03のrootに、vm03のPublic IPを指定して、SSH接続できることを 確認します。17 Open Cloud Campus
  18. 18. IaaSクラウドを支えるインフラ技術SSH接続の確認 (2) 同じIPアドレスが別の仮想マシンに割り当てられた際の挙動を確認します。 – クラウドクライアントから、vm02に割り当てたElastic IPを取り外して、このElastic IPをvm03に 割り当てます。 – vm01のuser01からvm03のrootに、Elastic IPを指定して、SSH接続を行います。 [user01@vm01 ~]$ ssh -i ~/.ssh/user01key root@157.1.147.138 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 is 69: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:1 RSA host key for 157.1.147.138 has changed and you have requested strict checking. Host key verification failed. • 157.1.147.138の部分は、実際に割り当てられたElastic IPに変更します。 – 質問:上の実行結果のようにSSH接続に失敗します。これはなぜでしょうか?また、どのようにす れば、この問題を回避して、SSH接続ができるようになるでしょうか?18 Open Cloud Campus
  19. 19. IaaSクラウドを支えるインフラ技術 GlusterFSの利用19 Open Cloud Campus
  20. 20. IaaSクラウドを支えるインフラ技術(参考)GlusterFSの導入手順 ※ GlusterFSをソースコードから導入する場合は、このページの手順に従います。 – 今回は、GlusterFSを導入済みのVMインスタンスを使用していますので、この手順は不要です。 – GlusterFSのコンパイルに必要な開発ルールと前提パッケージを導入します。 # yum -y groupinstall "Development Tools" # yum -y groupinstall "Development Libraries" # yum -y install fuse – インターネットからglusterfsとctypesのソースコードをダウンロードします。 # 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 – ctypesをインストールします。 # cd ~/work # tar -xvzf ctypes-1.0.2.tar.gz # cd ctypes-1.0.2 # ./setup.py install – GlusterFSをインストールして、glusterdを起動します。 # cd ~/work # tar -xvzf glusterfs-3.3beta2.tar.gz # cd glusterfs-3.3beta2 # ./configure && make # make install # chkconfig glusterd on # service glusterd start20 Open Cloud Campus
  21. 21. IaaSクラウドを支えるインフラ技術EBSの接続 ※ このセクションの作業はvm01〜vm03で共通に行います。 仮想マシンにEBSを接続してマウントします。 – クラウドクライアントから仮想マシンに2GBのEBSを/dev/sdhとして接続します。 – EBSをext3でフォーマットして、/ebsにマウントします。 [root@vm01 ~]# mke2fs -j /dev/sdh mke2fs 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 – EBSの中に次の3種類のディレクトリ(brick01〜brick03)を作成します。 [root@vm01 ~]# mkdir /ebs/brick01 /ebs/brick02 /ebs/brick0321 Open Cloud Campus
  22. 22. IaaSクラウドを支えるインフラ技術GlusterFSの設定 ※ このセクションの作業はvm01で行います。 GlusterFSのクラスタを構成します。 – vm01からvm02とvm03をpeer登録して、クラスタを構成します。 [root@vm01 ~]# gluster peer probe vm02 Probe successful [root@vm01 ~]# gluster peer probe vm03 Probe successful – peerの状態を確認します。 [root@vm01 ~]# gluster peer status Number of Peers: 2 Hostname: vm02 Uuid: 2b316dc6-5660-44f3-9f9f-0381c5c4ff52 State: Peer in Cluster (Connected) Hostname: vm03 Uuid: 7f93be75-f0ab-4df3-9d8b-0773aa9468b9 State: Peer in Cluster (Connected)22 Open Cloud Campus
  23. 23. IaaSクラウドを支えるインフラ技術デフォルト・ボリュームの使用 (1) ※ このセクションの作業はvm01で行います。 デフォルトの分散配置構成のボリュームvol01を作成します。 – 各仮想マシンの/ebs/brick01をブリックとして、ボリュームvol01を作成・開始します。 [root@vm01 ~]# gluster volume create vol01 vm01:/ebs/brick01 vm02:/ebs/brick01 vm03:/ebs/brick01 Creation of volume vol01 has been successful. Please start the volume to access data. [root@vm01 ~]# gluster volume start vol01 Starting volume vol01 has been successful – ボリュームvol01の構成を確認します。 [root@vm01 ~]# gluster volume info vol01 Volume Name: vol01 Type: Distribute Status: Started Number of Bricks: 3 Transport-type: tcp Bricks: Brick1: vm01:/ebs/brick01 Brick2: vm02:/ebs/brick01 Brick3: vm03:/ebs/brick0123 Open Cloud Campus
  24. 24. IaaSクラウドを支えるインフラ技術デフォルト・ボリュームの使用 (2) ボリュームvol01をマウントして、ファイルを作成します。 – ボリュームvol01を/data01にマウントします。 [root@vm01 ~]# mkdir /data01 [root@vm01 ~]# mount -t glusterfs localhost:/vol01 /data01 – /data01の容量を確認します。 [root@vm01 ~]# df Filesystem 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% /ebs glusterfs#localhost:/vol01 6213632 206208 5691776 4% /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]# ls 100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt 101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt 102.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.txt 199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt [root@vm01 data01]# ls | wc -l 90024 Open Cloud Campus
  25. 25. IaaSクラウドを支えるインフラ技術デフォルト・ボリュームの使用 (3) /data01内のファイルの実体は、vm01〜vm03の/ebs/brick01/以下にファイル単位で分散 配置されていることを確認します。 – vm01〜vm03の/ebs/brick01/以下のファイルを確認します。 [root@vm01 ~]# ls /ebs/brick01 100.txt 194.txt 262.txt 356.txt 440.txt 509.txt 580.txt 676.txt 763.txt 844.txt 936.txt 103.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.txt 191.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 -l 277 [root@vm02 ~]# ls /ebs/brick01 101.txt 201.txt 300.txt 385.txt 483.txt 604.txt 693.txt 802.txt 894.txt 105.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.txt 199.txt 299.txt 384.txt 482.txt 600.txt 686.txt 800.txt 888.txt [root@vm02 ~]# ls /ebs/brick01 | wc -l 302 [root@vm03 ~]# ls /ebs/brick01 102.txt 189.txt 309.txt 428.txt 533.txt 628.txt 735.txt 836.txt 931.txt 106.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.txt 188.txt 308.txt 427.txt 526.txt 627.txt 731.txt 833.txt 927.txt [root@vm03 ~]# ls /ebs/brick01 | wc -l 32125 Open Cloud Campus
  26. 26. IaaSクラウドを支えるインフラ技術ストライピング・ボリュームの使用 (1) ※ このセクションの作業はvm01で行います。 ストライピング構成のボリュームvol02を作成します。 – 各仮想マシンの/ebs/brick02をブリックとして、ボリュームvol02を作成・開始します。 [root@vm01 ~]# gluster volume create vol02 stripe 3 vm01:/ebs/brick02 vm02:/ebs/brick02 vm03:/ebs/brick02 Creation of volume vol02 has been successful. Please start the volume to access data. [root@vm01 ~]# gluster volume start vol02 Starting volume vol02 has been successful – ボリュームvol02の構成を確認します。 [root@vm01 ~]# gluster volume info vol02 Volume Name: vol02 Type: Stripe Status: Started Number of Bricks: 3 Transport-type: tcp Bricks: Brick1: vm01:/ebs/brick02 Brick2: vm02:/ebs/brick02 Brick3: vm03:/ebs/brick0226 Open Cloud Campus
  27. 27. IaaSクラウドを支えるインフラ技術ストライピング・ボリュームの使用 (2) ボリュームvol02をマウントして、ファイルを作成します。 – ボリュームvol02を/data02にマウントします。 [root@vm01 ~]# mkdir /data02 [root@vm01 ~]# mount -t glusterfs localhost:/vol02 /data02 – /data02の容量を確認します。 [root@vm01 ~]# df Filesystem 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% /ebs glusterfs#localhost:/vol01 6213632 227840 5670144 4% /data01 glusterfs#localhost:/vol02 6213632 227840 5670144 4% /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]# ls 100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt 101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt 102.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.txt 199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt [root@vm01 data02]# ls | wc -l 90027 Open Cloud Campus
  28. 28. IaaSクラウドを支えるインフラ技術ストライピング・ボリュームの使用 (3) /data01内のファイルの実体は、vm01〜vm03の/ebs/brick02/以下に分散配置されている ことを確認します。 – vm01〜vm03の/ebs/brick02/以下のファイルを確認します。 [root@vm01 ~]# ls /ebs/brick02 100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt 101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt 102.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.txt 199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt [root@vm01 ~]# ls /ebs/brick02 | wc -l 900 • vm02、vm03の結果は省略します。 • ストライピング・ボリュームでは、1つのファイルが3つに分割されて、各仮想マシンに分散配置されます。そ のため、各仮想マシンの/ebs/brick02/以下には同じファイル名のファイルが存在します。(ファイルの内容は それぞれ異なります。)28 Open Cloud Campus
  29. 29. IaaSクラウドを支えるインフラ技術レプリケーション・ボリュームの使用 (1) ※ このセクションの作業はvm01で行います。 レプリケーション構成のボリュームvol03を作成します。 – 各仮想マシンの/ebs/brick03をブリックとして、ボリュームvol03を作成・開始します。 [root@vm01 ~]# gluster volume create vol03 replica 3 vm01:/ebs/brick03 vm02:/ebs/brick03 vm03:/ebs/brick03 Creation of volume vol03 has been successful. Please start the volume to access data. [root@vm01 ~]# gluster volume start vol03 Starting volume vol03 has been successful – ボリュームvol03の構成を確認します。 # gluster volume info vol03 Volume Name: vol03 Type: Replicate Status: Started Number of Bricks: 3 Transport-type: tcp Bricks: Brick1: vm01:/ebs/brick03 Brick2: vm02:/ebs/brick03 Brick3: vm03:/ebs/brick0329 Open Cloud Campus
  30. 30. IaaSクラウドを支えるインフラ技術レプリケーション・ボリュームの使用 (2) ボリュームvol03をマウントして、ファイルを作成します。 – ボリュームvol03を/data03にマウントします。 [root@vm01 ~]# mkdir /data03 [root@vm01 ~]# mount -t glusterfs localhost:/vol03 /data03 – /data03の容量を確認します。 [root@vm01 ~]# df Filesystem 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% /ebs glusterfs#localhost:/vol01 6213632 227840 5670144 4% /data01 glusterfs#localhost:/vol02 6213632 227840 5670144 4% /data02 glusterfs#localhost:/vol03 2071168 78208 1887744 4% /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.txt 199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt [root@vm01 data03]# ls | wc -l 90030 Open Cloud Campus
  31. 31. IaaSクラウドを支えるインフラ技術レプリケーション・ボリュームの使用 (3) /data01内のファイルの実体は、vm01〜vm03の/ebs/brick03/以下にレプリケーションさ れていることを確認します。 – vm01〜vm03の/ebs/brick03/以下のファイルを確認します。 [root@vm01 ~]# ls /ebs/brick03 100.txt 200.txt 300.txt 400.txt 500.txt 600.txt 700.txt 800.txt 900.txt 101.txt 201.txt 301.txt 401.txt 501.txt 601.txt 701.txt 801.txt 901.txt 102.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.txt 199.txt 299.txt 399.txt 499.txt 599.txt 699.txt 799.txt 899.txt 999.txt [root@vm01 ~]# ls /ebs/brick03 | wc -l 900 • vm02、vm03の結果は省略します。 • レプリケーション・ボリュームでは、1つのファイルが各仮想マシンにコピーされます。そのため、各仮想マシ ンの/ebs/brick03/以下には同じファイル名のファイルが存在します。(ファイルの内容は同じです。)31 Open Cloud Campus
  32. 32. オープンクラウド・キャンパスこれからもクラウドを支えるインフラ技術を学びましょう 中井悦司 Twitter @enakai00

×