2017年12月23日土曜日

Oracle VM 3.x での iSCSI ストレージ構成。(ovmcli)

Oracle VM Server(OVMS)で iSCSI ストレージを利用できるようにしてみます。
今回も、ovmcli を利用してみます。

今回の構成です。
  • Oracle VM 3.4.4
  • 今回の OVMS は 2ホストです。(ovms334-01、ovms334-02)
  • iSCSI ストレージは Oracle Linux 7.4 ※セットアップは省略。
  • iSCSI の接続は 2経路のマルチパス。
    • iSCSI Target Path #1: 192.168.41.17 
    • iSCSI Target Path #2: 192.168.42.17

(なお、長くなるので今回はコマンドの出力結果は省略しています。)

OVMS のポートの準備。

今回は、iSCSI Target へのネットワーク セグメントごとに Bond Port を作成します。
初期状態では、bond0 がありますが、今回は bond1 と bond2 を追加作成します。
OVM> list BondPort
  id:0004fb0000200000b503ee8b05a8c08f  name:bond0 on ovms344-02
  id:0004fb00002000005536d9dd3e71224e  name:bond0 on ovms344-01
OVM>

今回の Oracle VM Server のポートです。
[gowatana@vm01 ~]$ ovmcli list Port | grep id | sort -k4 -k3
  id:0004fb000020000093b3d2d755ffaa81  name:eth0 on ovms344-01
  id:0004fb0000200000c8ba110b230a737d  name:eth1 on ovms344-01
  id:0004fb000020000000ab7b8208ba5eb7  name:eth2 on ovms344-01
  id:0004fb0000200000fabf8f84b8beff4a  name:eth3 on ovms344-01
  id:0004fb000020000021f0c5e52ff799c0  name:eth4 on ovms344-01
  id:0004fb0000200000f49ada2d61024476  name:eth5 on ovms344-01
  id:0004fb00002000007660309feb617b04  name:eth0 on ovms344-02
  id:0004fb00002000008d3019b65a4a098f  name:eth1 on ovms344-02
  id:0004fb0000200000b196f4102557fe0e  name:eth2 on ovms344-02
  id:0004fb00002000008abdb900a924c5eb  name:eth3 on ovms344-02
  id:0004fb0000200000cb2a5f4e7dfb86bd  name:eth4 on ovms344-02
  id:0004fb000020000003b9832db19f718d  name:eth5 on ovms344-02
[gowatana@vm01 ~]$

Bond Port を作成します。
bond1 を作成します。
OVM> create bondPort mode=LOAD_BALANCED mtu=1500 interfaceName=bond1 name="bond1 on ovms344-01" ethernetPorts=0004fb000020000000ab7b8208ba5eb7,0004fb0000200000fabf8f84b8beff4a on Server name=ovms344-01
JobId: 1513899725059
  id:0004fb0000200000bd4070745bf64eff  name:bond1 on ovms344-01
OVM>

Bond Port は、OVMS ごとに同様に作成します。
OVM> create BondPort mode=LOAD_BALANCED mtu=1500 interfaceName=bond1 name="bond1 on ovms344-02" ethernetPorts=0004fb0000200000b196f4102557fe0e,0004fb00002000008abdb900a924c5eb on Server name=ovms344-02
JobId: 1514016366539
  id:0004fb0000200000f6113270d288e3eb  name:bond1 on ovms344-02
OVM>

bond1 に IP アドレスを設定します。
OVM> embeddedCreate BondPort name="bond1 on ovms344-01" ipAddressConfig ipAddressConfigType=STATIC ipAddress=192.168.41.111 ipNetmask=255.255.255.0
OVM> embeddedCreate BondPort name="bond1 on ovms344-02" ipAddressConfig ipAddressConfigType=STATIC ipAddress=192.168.41.112 ipNetmask=255.255.255.0

bond2 を作成します。
OVM> create bondPort mode=LOAD_BALANCED mtu=1500 interfaceName=bond2 name="bond2 on ovms344-01" ethernetPorts=0004fb000020000021f0c5e52ff799c0,0004fb0000200000f49ada2d61024476 on Server name=ovms344-01
OVM> create BondPort mode=LOAD_BALANCED mtu=1500 interfaceName=bond2 name="bond2 on ovms344-02" ethernetPorts=0004fb0000200000cb2a5f4e7dfb86bd,0004fb000020000003b9832db19f718d on Server name=ovms344-02

bond2 に IP アドレスを設定します。
OVM> embeddedCreate BondPort name="bond2 on ovms344-01" ipAddressConfig ipAddressConfigType=STATIC ipAddress=192.168.42.111 ipNetmask=255.255.255.0
OVM> embeddedCreate BondPort name="bond2 on ovms344-02" ipAddressConfig ipAddressConfigType=STATIC ipAddress=192.168.42.112 ipNetmask=255.255.255.0

iSCSI ストレージの追加。

iSCSI Target を追加します。
iSCSI Target の片方の IP アドレスを指定して StorageArray を作成してから、
あとで もう一つのパスの iSCSI Target IP アドレスを追加します。
OVM> create StorageArray plugin="Oracle Generic SCSI Plugin" name=ovm-iscsi-01 storageType=ISCSI accessHost=192.168.41.17 accessPort=3260
OVM> addAccessHost StorageArray name=ovm-iscsi-01 accessHost=192.168.42.17 accessPort=3260

ストレージのリフレッシュで必要になるので、Admin Server を設定しておきます。
OVM> addAdminServer StorageArray name=ovm-iscsi-01 server=ovms344-01
OVM> addAdminServer StorageArray name=ovm-iscsi-01 server=ovms344-02

iSCSI Initiator の IQN 登録。

今回の OVMS の iSCSI Initiator IQN です。
[gowatana@vm01 ~]$ ovmcli Show Server name=ovms344-01  | grep iqn
  Storage Initiator 1 = iqn.1988-12.com.oracle:c048fc66bdc7  [iqn.1988-12.com.oracle:c048fc66bdc7]
[gowatana@vm01 ~]$ ovmcli Show Server name=ovms344-02  | grep iqn
  Storage Initiator 1 = iqn.1988-12.com.oracle:4854dc6cd2  [iqn.1988-12.com.oracle:4854dc6cd2]
[gowatana@vm01 ~]$

登録した StorageArray を一度 validate したあとで
iSCSI ストレージに接続する OVMS の Initiator を登録します。
OVM> validate StorageArray name=ovm-iscsi-01
OVM> add StorageInitiator name=iqn.1988-12.com.oracle:c048fc66bdc7 to AccessGroup name="Default access group @ ovm-iscsi-01"
OVM> add StorageInitiator name=iqn.1988-12.com.oracle:4854dc6cd2 to AccessGroup name="Default access group @ ovm-iscsi-01"

ファイルシステムの作成。

OCFS2 ファイルシステムを作成します。

iSCSI ストレージのディスクは、下記のように認識されています。
今回は、「LIO-ORG (1)」の方を利用します。
OVM> list PhysicalDisk
  id:0004fb0000180000511a4a322278fb83  name:LIO-ORG (1)
  id:0004fb0000180000edbbbcd2b223917e  name:LIO-ORG (2)
OVM>

ちなみに、iSCSI 接続しているデバイスがパーティションを持っている場合は、
ファイルシステム作成がエラーになってしまいます。
何らかの理由でパーティションが作成されてしまっている場合は、
すべての OVMS で fdisk コマンドなどでパーテイションを削除した状態にしておきます。

今回はマルチパスデバイスを利用していますが、
いつのまにかパーティションが作成されていたので、すべての OVMS にログインして
dmsetup remove コマンドで削除しました。
[root@ovms344-02 ~]# dmsetup ls
36001405006794a517754a6f842cfdb08p1     (249:2)
36001405006794a517754a6f842cfdb08       (249:0)
36001405ce98439ad8294439b14518f6d       (249:1)
36001405ce98439ad8294439b14518f6dp1     (249:3)
[root@ovms344-02 ~]# dmsetup remove 36001405006794a517754a6f842cfdb08p1
[root@ovms344-02 ~]# dmsetup ls
36001405006794a517754a6f842cfdb08       (249:0)
36001405ce98439ad8294439b14518f6d       (249:1)
36001405ce98439ad8294439b14518f6dp1     (249:3)

フィルシステムを作成します。ファイルシステムは自動的に OCFS2 になります。
FileServer は、iSCSI の場合はネットワーク経由ですが "Local FS ~" を指定します。
OVM> create FileSystem name=fs-ocfs-01 physicalDisk=0004fb0000180000511a4a322278fb83 on FileServer name="Local FS ovms344-01"
JobId: 1514028950929
  id:0004fb00000500003036f2af3ae2c420  name:fs-ocfs-01
OVM>

リポジトリの作成。

リポジトリを作成します。
OVM> create Repository name=st-repo-02 on FileSystem name=fs-ocfs-01

リポジトリの作成~OVMS への接続。

作成したリポジトリに、サーバプールを追加します。
OVM> add serverPool name=sv-pool-01 to Repository name=st-repo-02

これで、OVMS が iSCSI のリポジトリを利用できるようになります。
OVM> show Repository name=st-repo-02
  File System = 0004fb00000500003036f2af3ae2c420  [fs-ocfs-01]
  Manager UUID = 0004fb0000010000a0e687cd58ccfb0a
  File System Free (GiB) = 5.87
  File System Total (GiB) = 10.0
  File System Used (GiB) = 4.13
  Used % = 41.3
  Apparent Size (GiB) = 0.0
  Capacity % = 0.0
  Refreshed = Yes
  Presented = Yes
  Presented Server 1 = fe:15:0a:42:b0:41:db:19:ad:dd:68:4a:49:1f:fb:d8  [ovms344-01]
  Presented Server 2 = 2b:10:0a:42:ca:41:55:d1:95:06:a6:c9:18:dd:e5:90  [ovms344-02]
  Id = 0004fb000003000035e5d85bef1d81c5  [st-repo-02]
  Name = st-repo-02
  Locked = false
  DeprecatedAttrs = [Assembly]
OVM>

Oracle VM Manager の Web UI から見ると下記のようになります。


OVMS でも確認できます。

マルチパス接続された iSCSI デバイスがあります。
[root@ovms344-01 ~]# iscsiadm -m session
tcp: [1] 192.168.41.17:3260,1 iqn.2011-10.jp.gowatana:ovm-iscsi-01 (non-flash)
tcp: [2] 192.168.42.17:3260,1 iqn.2011-10.jp.gowatana:ovm-iscsi-01 (non-flash)
[root@ovms344-01 ~]# ls -l /dev/disk/by-path/* | grep iscsi
lrwxrwxrwx 1 root root  9 12月 23 20:56 2017 /dev/disk/by-path/ip-192.168.41.17:3260-iscsi-iqn.2011-10.jp.gowatana:ovm-iscsi-01-lun-0 -> ../../sdc
lrwxrwxrwx 1 root root  9 12月 23 20:56 2017 /dev/disk/by-path/ip-192.168.41.17:3260-iscsi-iqn.2011-10.jp.gowatana:ovm-iscsi-01-lun-1 -> ../../sde
lrwxrwxrwx 1 root root  9 12月 23 20:56 2017 /dev/disk/by-path/ip-192.168.42.17:3260-iscsi-iqn.2011-10.jp.gowatana:ovm-iscsi-01-lun-0 -> ../../sdb
lrwxrwxrwx 1 root root  9 12月 23 20:56 2017 /dev/disk/by-path/ip-192.168.42.17:3260-iscsi-iqn.2011-10.jp.gowatana:ovm-iscsi-01-lun-1 -> ../../sdd
[root@ovms344-01 ~]# multipath -l /dev/sdb
36001405006794a517754a6f842cfdb08 dm-1 LIO-ORG,lun0
size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=0 status=active
| `- 34:0:0:0 sdb 8:16 active undef unknown
`-+- policy='round-robin 0' prio=0 status=enabled
  `- 33:0:0:0 sdc 8:32 active undef unknown

iSCSI ディスク上には OCFS2 のファイルシステムが作成されて、
マウントされています。
[root@ovms344-01 ~]# lsblk -f /dev/mapper/36001405006794a517754a6f842cfdb08
NAME                                     FSTYPE LABEL            UUID                                 MOUNTPOINT
36001405006794a517754a6f842cfdb08 (dm-1) ocfs2  OVS6f2af3ae2c420 0004fb00-0005-0000-3036-f2af3ae2c420 /OVS/Repositories/000
[root@ovms344-01 ~]# df -h /OVS/Repositories/*/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/36001405006794a517754a6f842cfdb08
                       10G  4.2G  5.9G  42% /OVS/Repositories/0004fb000003000035e5d85bef1d81c5

192.168.4.119:/nfs/repo01
                      100G   45G   56G  45% /OVS/Repositories/0004fb000003000085a55bcfe9b5cff4

リポジトリが作成されています。
[root@ovms344-01 ~]# ls -l /OVS/Repositories/0004fb000003000035e5d85bef1d81c5
合計 24
drwx------ 2 root root 3896 12月 23 21:17 2017 Assemblies
drwx------ 2 root root 3896 12月 23 21:17 2017 ISOs
drwx------ 2 root root 3896 12月 23 21:17 2017 Templates
drwx------ 2 root root 3896 12月 23 21:17 2017 VirtualDisks
drwx------ 2 root root 3896 12月 23 21:17 2017 VirtualMachines
drwxr-xr-x 2 root root 3896 12月 23 21:13 2017 lost+found

以上、ovmcli で iSCSI リポジトリを構成してみる話でした。

0 件のコメント:

コメントを投稿