NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

Clustered ONTAP で CIFS 共有

移動ユーザープロファイルの検証のため、久しぶりに Simulate ONTAP 8.3.2で、CIFS サーバーを構築しました。ドメイン参加に失敗する問題があったのでメモしておきます。

Aggregate 作成

storage aggregate create -aggregate aggr1 -raidtype raid_dp -diskcount 5 -nodes cluster1-01 -maxraidsize 22
storage aggregate show

SVM 作成

vserver create -vserver svm1 -rootvolume vol0 -aggregate aggr1 -rootvolume-security-style unix -language C
vserver show 

LIF 作成

network interface create lif0 -role cluster-mgmt -home-node cluster1-01 -home-port e0c -address 192.168.1.200 -netmask 255.255.255.0 
network interface create -vserver svm1 -lif lif1 -role data -data-protocol cifs -home-port e0a -address 192.168.1.201 -netmask 255.255.255.0

Volume 作成

volume create -vserver svm1 -volume vol1 -aggregate aggr1 -size 2g -security-style ntfs -space-guarantee none -junction-path /vol1
volume show

CIFS 設定

vserver services dns create -vserver svm1 -domains example.com -name-servers 192.168.1.100
vserver services dns show
cifs create -cifs-server svm1_cifs -domain example.com -vserver svm1
vserver cifs show

cifs create コマンドを使用して、ドメイン参加する際、以下のエラー発生しました。

Unable to connect to LSA service on ad.example.com
(Error: RESULT_ERROR_KERBEROS_SKEW)

調べてみると、AD と NetApp 間で時刻がずれている場合に発生するようです。

時刻とタイムゾーンの設定

system date modify -timezone Japan -date 8/7/2016 15:00:00
system date show

CIFS 共有設定

vserver cifs share create -vserver svm1 -share-name profiles -path /vol1
vserver cifs share show 

以上で、CIFS 共有したボリュームにアクセスが可能となります。
f:id:FriendsNow:20160807155715p:plain

AD ドメイン上のユーザーで、SVM へのアクセスを許可する場合は、以下を設定します。
※移動ユーザープロファイルのプロファイルパスに SVM を指定する場合、必須のコマンドです。

security login domain-tunnel create -vserver svm1
security login domain-tunnel show

ドメイン「EXAMPLE」内のグループ「group01」に所属するユーザーで SSH 接続を許可することも可能です。
設定は以下のとおりです。

security login create -vserver cluster1 -user-or-group-name EXAMPLE\group01 -application ssh -authmethod domain
security login show -vserver cluster1

※なお、ADDNS の A レコードは、ドメイン参加時に登録される「ホスト名」と異なる名前でないと、名前による CIFS 接続に失敗するといった問題が発生しました。(IP アドレスでは正常に接続可能)原因については調査中です。

以上

NFS データストアでフォルダを作成できない問題について

NetApp で作成したボリュームを、ESXi から NFS でマウントし、データストア上にフォルダを作成しようとした際、以下のエラーが出力される問題に遭遇しました。

ESXi「192.168.1.100」で オブジェクト「ha-nfc-file-manager」の「FileManager.MakeDirectory」 の呼び出しが失敗しました。

もちろん、ボリュームは正しく export しています。
色々調べた結果、NetApp 側の qtree 設定で serurity を unix にする必要がありました。*1

qtree 設定確認

qtree security コマンドで設定状況を確認します。

netapp> qtree status vol07
Volume   Tree     Style Oplocks  Status
-------- -------- ----- -------- ---------
vol07             ntfs  enabled  normal
qtree 設定変更
> qtree security /vol/vol07 unix
qtree 設定確認

qtree security コマンドで設定状況を確認します。

netapp> qtree status vol07
Volume   Tree     Style Oplocks  Status
-------- -------- ----- -------- ---------
vol07             unix  enabled  normal

以上で、データストア上にフォルダを作成することができるようになりました。

以上

*1:今回、使用した FAS では、デフォルトが ntfs となっていました。

Cisco と NetApp(7-Mode)で LAG 設定

以前、Nexus と Netapp 間で LAG を構成する際の注意点の記事で LAG の設定例を書きましたが、NetAppのソフトウェアバージョン8.2では、少し設定が異なったのでメモします。
それぞれ2本のインターフェースで LAG を構成し、NetApp 側は VLAN101と102のインターフェースを作成します。Cisco 側は VLAN101と VLAN102を透過する設定例になります。

Cisco の設定

interface GigabitEthernet0/1
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 101,102
 switchport mode trunk
 channel-group 1 mode on
!
interface GigabitEthernet0/2
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 101,102
 switchport mode trunk
 channel-group 1 mode on

NetApp の設定

ifgrp create multi ifgrp0 -b ip e0a e0b
vlan create ifgrp0 101 102
ifconfig ifgrp0-101 192.168.101.100 netmask 255.255.255.0 partner ifgrp0
ifconfig ifgrp0-102 192.168.102.100 netmask 255.255.255.0 partner ifgrp0
ifgrp status
default: transmit 'IP Load balancing', Ifgrp Type 'multi_mode', fail 'log'
ifgrp0: 2 links, transmit 'IP Load balancing', Ifgrp Type 'multi_mode' fail 'default'
         Ifgrp Status   Up      Addr_set
        up:
        e0a: state up, since 02Apr2016 13:18:54 (01:04:47)
                mediatype: auto-1000t-fd-up
                flags: enabled
                input packets 2408902, input bytes 3601548374
                output packets 1264232, output bytes 97298932
                up indications 1, broken indications 0
                drops (if) 0, drops (link) 0
                indication: up at 02Apr2016 13:18:54
                        consecutive 3887, transitions 1
        e0b: state up, since 02Apr2016 13:18:42 (01:04:59)
                mediatype: auto-1000t-fd-up
                flags: enabled
                input packets 0, input bytes 0
                output packets 122, output bytes 8396
                up indications 2, broken indications 1
                drops (if) 0, drops (link) 0
                indication: up at 02Apr2016 13:18:42
                        consecutive 4159, transitions 3

以上

VMware Photon Linux について

VMware が、コンテナ向けに最適化された軽量 LinuxOS「Project Photon」をテクノロジープレビューとして公開しました。これまで仮想化ハイパーバイザを中心に製品群を組み立て(あるいは Spring Framework のような上位レイヤのものもありましたが)、OS とは一定の距離を保とうとしていた VMware にとって大きな変化といえます。
出典:Publickey

今回、vSphere ESXi5.5 の基盤上に Photon Linux をインストールし、基本的な動作を確認してみました。

Photon Linux のインストール

VMware Github から[Photon OS, Tech Preview 2 Full ISO]をダウンロードします。
f:id:FriendsNow:20160104193639p:plain

次のサイトを参考に仮想マシンを作成し、ダウンロードしたイメージをマウントし起動します。
f:id:FriendsNow:20160104193726p:plain

今回は、Photon Full OS (All) を選択します。
f:id:FriendsNow:20160104194004p:plain

再起動後、インストール完了です。
f:id:FriendsNow:20160104194019p:plain

Photon Linux の環境確認

今回インストールした Photon Linux のカーネルバージョンは、以下のとおりです。

# uname -a
Linux photon 4.0.9 #1-photon SMP Thu Aug 20 19:57:53 UTC 2015 x86_64 GNU/Linux

Photon Linux のディストリビューションバージョンは、以下のとおりです。

# cat /etc/lsb-release
DISTRIB_ID="VMware Photon"
DISTRIB_RELEASE="1.0 TP2"
DISTRIB_CODENAME=Photon
DISTRIB_DESCRIPTION="VMware Photon 1.0 TP2"

Docker のバージョンは、以下のとおりです。

> rpm -q docker
docker-1.8.1-1.ph1tp2.x86_64

Photon への SSH ログイン

root ユーザでの SSH ログインを許可します。*1

# vi /etc/ssh/sshd_config
# 134 行目あたりにある、「PermitRootLogin」を「yes」に変更します。
> PermitRootLogin yes 

sshd を再起動します。

# systemctl restart sshd.service

Docker の起動

以下のコマンドで、Docker のサービスを開始します。

# systemctl start docker
# systemctl enable docker

Docker イメージのダウンロード

Docker イメージは、コンテナを実行するために必要なアーカイブ*2と、コンテナのメタ情報を持ちます。
多くのベースイメージは Docker Hub Registry で公開されているので、そこからダウンロードするのが一般的です。イメージのダウンロードは、docker pull コマンドを実行します。

(書式)
# docker pull {イメージ名}:{タグ名}

初期設定では、Docker レジストリとして「Docker Hub Registry」にアクセスするようになっています。

今回の例では、Ubuntu Linux Dockerイメージの最新版をダウンロードします。*3

# docker pull ubuntu

以下のコマンドで、ダウンロードした Docker イメージの一覧を確認します。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              d55e68e6cc9c        3 weeks ago         187.9 MB

Docker コンテナの作成・実行

docker run コマンドで、コンテナの新規作成と実行の両方を行います。

(書式)
# docker run [オプション] [--name {コンテナ名}] {イメージ名}[:{タグ名}] [コンテナで実行するコマンド] [引数]
主なオプション
  • 「-d」:バックグラウンドで実行する。(Web サーバー等、常時実行するコンテナで指定)
  • 「-i」:コンテナの標準入力を開く。(/bin/bashなどでコンテナを操作する際に指定)
  • 「-t」:tty(端末デバイス)を確保する。(/bin/bashなどでコンテナを操作する際に指定)
  • 「-p{ホストのポート番号}:{コンテナのポート番号}」:Docker のホストとポートマッピングを構成

今回の例では、Ubuntu イメージからコンテナ「web01」を作成、端末を開き bash を実行します。

# docker run -it --name web01 ubuntu /bin/bash
root@ef408ef16c7a:/#
コンテナで bash が実行され、プロンプトが表示されます。
一瞬で新規作成~起動まで完了し、コンテナ内で任意の操作ができます。

Web サーバーの「nginx」をコンテナにインストールします。

# apt-get install -y nginx

curl を使用して確認します。

# curl localhost
<!DOCTYPE html>
<html>
<head>
<...snip...>

確認が完了したら[Ctrl]+[d]キーで bash プロセスを終了します。
プロセスの終了とコンテナの停止は連動するため、この時点でコンテナ「web01」は停止状態になります。
端末を再度開く場合は、プロセスを起動し docker attach コマンドを使用します。

# docker start web01
# docker attach web01

Docker コンテナの確認

Docker コンテナの一覧は、docker ps コマンドで確認します。

(書式)
# docker ps [-a]

docker ps コマンドでは実行中のコンテナのみ表示されますが、「-a」オプションを付加すると、停止中のコンテナも表示されます。

# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
ef408ef16c7a        ubuntu              "/bin/bash"              10 hours ago        Exited (0) 7 minutes ago                        web01
STATUS で「Up」は実行中、「Exit」は停止を示します。

Docker イメージの作成

上記で作成したコンテナ(web01)から、新しいイメージ(ubuntu_template)を作成してみます。

(書式)
# docker commit {コンテナ名}|{コンテナID} [{ユーザー名}/]{イメージ名}
# docker commit web01 user01/ubuntu_template

以下のコマンドで、作成した Docker イメージの一覧を確認します。

# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
user01/ubuntu_template   latest              e1f421fdefaf        5 seconds ago       216.5 MB
ubuntu                   latest              d55e68e6cc9c        3 weeks ago         187.9 MB

Docker コンテナのバックグラウンド実行

作成したイメージには、nginx が含まれているので、こちらからコンテナを作成、実行してみます。

# docker run -d -p 80:80 --name web02 user01/ubuntu_template /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf
7f5b4a545ba47c356148b78898d74342bd56249bc4d71938648a79279c50c10f
80番ポートを Listen しバックグラウンドで実行するようにオプションを指定します。

バックグラウンドで実行しているため、docker ps コマンドの-aオプションなしでも表示されます。

# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED              STATUS              PORTS                NAMES
7f5b4a545ba4        user01/ubuntu_template   "/usr/sbin/nginx -g '"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp   web02

Docker コンテナのの停止

実行中の Docker コンテナは、docker stop で停止します。

(書式)
# docker stop {コンテナ名}|{コンテナID}

停止後、docker ps を実行すると表示されなくなります。

# docker stop web02
web02
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Docker コンテナのの削除

Docker コンテナは docker rm、Docker イメージは docker rmi で削除します。

(書式)
# docker rm {コンテナ名}|{コンテナID}
# docker rmi {イメージ名}|{イメージID}

今回作成した Docker コンテナを削除します。

# docker rm web01
# docker rm web02

次に Docker イメージを削除します。

# docker rmi user01/ubuntu_template
Untagged: user01/ubuntu_template:latest
Deleted: e1f421fdefaf4c60018ccd3fbec43483ec8c6d07d3232d8c67293878e5422e6f

参考サイト:
https://communities.vmware.com/people/gowatana/blog
http://blog.amedama.jp/entry/2015/09/24/222040
http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html
http://www.atmarkit.co.jp/ait/articles/1406/10/news031_3.html

以上

*1:Photon では、デフォルトで SSH が有効化されていますが、root ユーザでのログインは禁止されています。

*2:全てのディレクトリ/ファイルを含む

*3:タグ名を指定しない場合、多くのイメージには最新版(Latest)が指定されます。

Cisco ASA のポータルページ無効化

Cisco ASA で WebVPN を使用時、ブラウザで ASA のアドレスにアクセスすると以下のようなポータルサイトが表示されます。

f:id:FriendsNow:20151125222538g:plain

このポータルサイトを無効化するには、以下のコマンドを実行します。

ciscoasa# conf t
ciscoasa(config)# webvpn
ciscoasa(config-webvpn)# portal-access-rule 1 deny code 403 any
ciscoasa(config-webvpn)# end
ciscoasa# sh run web

以上

VMware Mirage の CVD Policy について

例えば、複数のディスクドライブ*1を持つ PC からベースレイヤを作成し、それを単一のディスクドライブを持つエンドポイントに配布しようとすると、下記のようなエラーとなります。

Drive Letter Mismatch. Base Layer: 'c,e',Device:'c'

f:id:FriendsNow:20150923194201p:plain

これを回避するには、エンドポイントをベースレイヤと同様のディスク構成にするか、ベースレイヤのディスク構成をエンドポイントにあわせる必要があります。
「CVD Policy」では、保護対象とするディスクを明示的に設定できるため、これを使用してベースレイヤのディスク構成をエンドポイントにあわせることが可能です。

CVD Policy の作成

左ペインの[Polices]で[Add]をクリックします。
f:id:FriendsNow:20150923194254p:plain

[Protected volumes]で、保護対象のボリュームを「C:」のみに指定します。*2
f:id:FriendsNow:20150923194308p:plain

[Policies]に Policy(Name:Protect Only C volume)が作成されます。
f:id:FriendsNow:20150923194400p:plain

CVD Policy の適用

[Pending Devices]から対象の仮想マシンを選択し[Create Reference CVD(Base Layer)]をクリックします。
f:id:FriendsNow:20150923194415p:plain

作成した CVD Policy を選択し[Next]をクリックします。
f:id:FriendsNow:20150923194424p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150923194433p:plain

アップロード処理が完了後、[Capture Base Layer]をクリックし、Base Layer の作成処理を開始します。
f:id:FriendsNow:20150923194448p:plain

[Name]に Base Layer の名称を入力し[Next]をクリックします。
f:id:FriendsNow:20150923194457p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150923194505p:plain

上記で作成したベースレイヤは、単一のディスクドライブを持つエンドポイントに配布可能となります。

*1:e.g. ドライブレターC:とE:等

*2:対象の PC は、C:とE:のディスクドライブを持つ想定です。

ESXi で CDP を有効化

ESXi で CDP を有効化し、Cisco のスイッチで認識させる設定です。

シェルで以下のコマンドを実行し、vSwitch0 で CDP を有効化します。

~ #  esxcfg-vswitch -B both vSwitch0

以下のコマンドで設定状態を確認します。「both」となっていれば有効です。

~ # esxcfg-vswitch -b vSwitch0
both

参考
VMware Knowledge Base

VMware Mirage の File Portal について

留意事項として、事前にベースラインを適用している必要があります。
また、ベースライン適用時に、Mirage Gateway にログインしているユーザーが、File Portal ユーザーになります。例として、下記 CVD(Name:WIN-K9VEUG0NIUT)の File Portal User は「User01」になります。
f:id:FriendsNow:20150816225805p:plain

File Portal ユーザーは、以下の URL にアクセスし、自分のファイルをダウンロードする事ができます。

https://Mirage Server IP:6443/Exploer

また、管理者は、以下の URL から全ユーザーのファイルをダウンロードする事ができます。

https://Mirage Server IP:6443/AdminExploer

注意点として、アクセス時に「HTTP 500 エラー」が出力される場合があります。
この場合、Mirage Server に「ASP.NET」をインストールします。詳細については、以下を参照ください。
HTTP error 500 or 403 when accessing VMware Horizon Mirage File Portal or Web Manager

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
File Poral ログイン例

以下の URL でログインします。

https://192.168.1.10:6443/Exploer

File Portal User でログインします。
f:id:FriendsNow:20150816230103p:plain

自分のファイルをダウンロードする事ができます。
f:id:FriendsNow:20150816230111p:plain

管理者 File Poral ログイン例

以下の URL でログインします。

https://192.168.1.10:6443/AdminExploer

管理者ユーザーでログインします。
f:id:FriendsNow:20150816230128p:plain

任意のユーザーのファイルをダウンロードする事ができます。
f:id:FriendsNow:20150816230136p:plain

管理者 File Portal のアクセス制御について

管理者 Portal は、「ローカルセキュリティポリシー」で許可されたユーザーのみアクセス可能です。*1
File Portal をインストールした IIS サーバで、[ローカルセキュリティポリシー]をクリックします。
f:id:FriendsNow:20150816230155p:plain

[ローカルポリシー]の[ユーザー権の指定]から[ローカルでログオンを許可]をクリックします。
f:id:FriendsNow:20150816230203p:plain



アクセスを許可したいユーザーを追加します。
f:id:FriendsNow:20150816230213p:plain

これで、user01 でも管理者 File Portal へアクセス可能となります。
f:id:FriendsNow:20150816230219p:plain

(参考)
http://pubs.vmware.com/horizonmirage-44/index.jsp#com.vmware.horizonmirage.installation.doc/GUID-9541AF88-B091-4403-B60E-3BF051EEC137.html

以上

*1:デフォルトでは、Mirage をインストール後に追加したユーザー「user01」では、アクセスできませんでした。

VMwareMirageの基本操作について

はじめに

VMware Mirage は、PC を以下の6つの論理レイヤーに分離し、管理します。

  • ユーザーデータ設定レイヤー
    • レジストリに対する構成の変更等、ユーザーが設定した状態が含まれます。
  • ユーザーアプリケーションレイヤー
    • ユーザーがインストールしたアプリケーションが含まれます。
  • マシン ID レイヤー
    • 一意の識別子、ホスト名等が含まれます。
  • アプリケーションレイヤー
    • 1つ以上の部署、または業務部門アプリケーションのセットが含まれます。
  • ベースレイヤー
    • OS、アンチウイルス、ファイアウォール及び、Office 等の主要アプリケーションが含まれます。
  • ドライバライブラリレイヤー
    • 固有のハードウェアで使用するためのドライバのグループが含まれます。

レイヤ管理の手順

エンドポイントの登録

左ペインの[Pending Devices]から対象の仮想マシンを選択し[Centralize Endpoint]をクリックします。
f:id:FriendsNow:20150813234220p:plain

本例では[VMware Mirage Default CVD policy]を選択し[Next]をクリックします。
f:id:FriendsNow:20150813234240p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150813234304p:plain

左ペインの[CVD Inventory]から進捗を確認できます。
f:id:FriendsNow:20150813234323p:plain

ベースレイヤの作成

左ペインの[Pending Devices]から対象の仮想マシンを選択し[Create Reference CVD]をクリックします。
f:id:FriendsNow:20150813234414p:plain

[Base Layer]をクリックします。
f:id:FriendsNow:20150813234424p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150813234434p:plain

左ペインの[CVD Inventory]から進捗を確認できます。
f:id:FriendsNow:20150813234441p:plain

アップロード処理が完了後、[Capture Base Layer]をクリックし、Base Layer の作成処理を開始します。
f:id:FriendsNow:20150814104435p:plain

[Name]に Base Layer の名称を入力し[Next]をクリックします。
f:id:FriendsNow:20150814104511p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150814104528p:plain

左ペインの[CVD Inventory]から進捗を確認できます。
f:id:FriendsNow:20150814104537p:plain

アップロード処理が完了後、左ペインの[Layers]からレイヤの詳細情報が確認できます。
f:id:FriendsNow:20150814104545p:plain

OS マイグレーション

事前準備として、USMT を Mirage Server へインストールします。
Windows Automated Installation Kit for Windows 7 から[KB3AIK_EN.iso]をダウンロードします。
ダウンロードしたイメージをマウントし、インストールします。
デフォルトでは、以下のフォルダにインストールされます。

C:\Program Files\Windows AIK\Tools\USMT

次に USMT 4.0 update から HotFix をダウンロードします。

[Windows6.1-KB2023591-x64]を解凍後、4つのファイルを USMT のフォルダへ上書きコピーします。
f:id:FriendsNow:20150814160706p:plain

Mirage Console を起動し左ペインの[System Configuration]から[USMT]タブをクリックします。
[Import USMT Folder]をクリックし、USMT をインストールしたフォルダを指定します。
f:id:FriendsNow:20150814160745p:plain

以上で、Windows7 へマイグレートするために必要な USMT4.0 のインストールが完了しました。
f:id:FriendsNow:20150814160802p:plain

Windows8/8.1 へマイグレートするためには、USMT6.3 をインストールする必要があります。
Windows ADK for Windows 8.1 Update から[adksetup.exe]をダウンロードします。
ダウンロードしたファイルを実行し、インストールします。
デフォルトでは、以下のフォルダにインストールされます。

C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\User State Migration Tool

先の手順と同様に[Import USMT Folder]をクリックし、USMT をインストールしたフォルダを指定します。
f:id:FriendsNow:20150814160837p:plain

以上で、Windows8/8.1 へマイグレートするために必要な USMT6.3 のインストールが完了しました。
f:id:FriendsNow:20150814160845p:plain

左ペインの[CVD Inventory]から対象の仮想マシンを選択し[Migrate Windows OS]をクリックします。
f:id:FriendsNow:20150814161004p:plain

[Download and Apply Base Layer]を指定し[Next]をクリックします。
f:id:FriendsNow:20150814161011p:plain

ドメインの情報を設定します。本例では WORKGROUP を指定します。
f:id:FriendsNow:20150814161035p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150814161101p:plain

なお、USMT をインストールしていない場合、以下のエラーが出力されます。

USMT has not been imported to the server. VMware Mirage requires Microsoft USMT 6.3 for this operation.

f:id:FriendsNow:20150814161111p:plain

マイグレーション実行後、クライアント側で再起動が必要です。
f:id:FriendsNow:20150814161127p:plain

再起動後、Mirage により、Windows7→8.1のマイグレーションが実行されます。
f:id:FriendsNow:20150814161142p:plain

マイグレート及び、ベースレイヤが適用が完了します。
f:id:FriendsNow:20150814161150p:plain

ベースレイヤの適用

左ペインの[CVD Inventory]から対象の仮想マシンを選択し[Assign Base Layer]をクリックします。
f:id:FriendsNow:20150814200110p:plain

適用するベースレイヤをリストから選択し[Next]をクリックします。
f:id:FriendsNow:20150814200119p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150814203226p:plain

なお、適用先とベースレイヤの OS が異なる場合は、下記のとおりエラーとなります。

OS Mismatch. Windows operating system mismatch between layer and CVD.

f:id:FriendsNow:20150814203245p:plain

アップデートが完了し、クライアントで再起動した後、ベースレイヤが適用されます。
f:id:FriendsNow:20150814204020p:plain

対象のエンドポイントに、適用したベースレイヤが表示されます。
f:id:FriendsNow:20150814204317p:plain

アップレイヤの作成

左ペインの[Pending Devices]から対象の仮想マシンを選択し[Create Reference CVD]をクリックします。
f:id:FriendsNow:20150815221402p:plain

[App Layer]をクリックします。
f:id:FriendsNow:20150815221414p:plain

本例では[VMware Mirage Default CVD policy]を選択し[Next]をクリックします。
f:id:FriendsNow:20150815221425p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150815221459p:plain

左ペインの[CVD Inventory]から進捗を確認できます。
f:id:FriendsNow:20150815221516p:plain

クライアント側でレコーディングアプリレイヤが起動します。
f:id:FriendsNow:20150815221554p:plain

テストで、Tera Term/LogMeTT/TTLEditor をインストールします。
f:id:FriendsNow:20150815221656p:plain

[Finalize App Layer Capture]をクリックし、レコード処理を完了します。
f:id:FriendsNow:20150815221722p:plain

アプリケーションの内容を確認し[Next]をクリックします。
f:id:FriendsNow:20150815221730p:plain

[Name]に App Layer の名称を入力し[Next]をクリックします。
f:id:FriendsNow:20150815221739p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150815221757p:plain

左ペインの[CVD Inventory]から進捗を確認できます。
f:id:FriendsNow:20150815221804p:plain

アップロード処理が完了後、左ペインの[Layers]からレイヤの詳細情報が確認できます。
f:id:FriendsNow:20150815221815p:plain

アップレイヤの適用

左ペインの[CVD Inventory]から対象の仮想マシンを選択し[Assign App Layer]をクリックします。
f:id:FriendsNow:20150815221923p:plain

適用するアップレイヤを追加し[Next]をクリックします。
f:id:FriendsNow:20150815221929p:plain

その他の設定は全てデフォルトを指定し[Finish]をクリックします。
f:id:FriendsNow:20150815221956p:plain

アップデートが完了し、クライアントで再起動した後、アップレイヤが適用されます。
f:id:FriendsNow:20150815222016p:plain

VMware Mirage について

VMware Mirage の概要

管理は集中、アプリケーションはローカルで実行

  • 単一の PC イメージを IT 部門とエンドユーザー管理する論理レイヤに分離
  • VDI のように共通のマスターイメージを物理 PC に配信可能
  • ユーザーのデータやアプリケーションはマスターイメージで上書きされない
  • ユーザーが誤って削除したファイルもユーザー自身でリストア可能

f:id:FriendsNow:20150726122221p:plain:w600

VMware Mirage の構築

検証環境
  • VMware Mirage 5.4 を使用します。
  • Mirage Server の OS 及び DB 領域として、ローカルドライブ(C:\)を使用します。
  • Mirage Server はドメイン(example.com)に所属します。
  • Mirage Gateway Server はドメインに所属しません。
  • AD サーバに証明書サービスをインストールし、各サーバーへ証明書を発行します。
  • データーベースとして、SQL2012 Express を使用します。
検証構成

f:id:FriendsNow:20150727092520p:plain:w600

Mirage Server の構築

.NET インストール

Mirage Server は .NET Framework を必要としますのでインストールします。
f:id:FriendsNow:20150726230710p:plain

CSR 作成と証明書のインポート

「SSL サーバー証明書について」を参考に CSR 作成及び、証明書のインポートを行います。

SQL2012 Express インストール

以下の機能をインストールします。
f:id:FriendsNow:20150726230742p:plain

インスタンス ID は「MRGDB」とします。
f:id:FriendsNow:20150726230758p:plain

認証は「混合モード」を選択します。
f:id:FriendsNow:20150726230819p:plain

Mirage Management Server インストール

先の手順で作成したインスタンス「MRGDB」を指定してインストールします。
f:id:FriendsNow:20150726230901p:plain

Mirage Server インストール

先の手順で作成したインスタンス「MRGDB」を指定してインストールします。
f:id:FriendsNow:20150726230919p:plain

IIS のインストール

「Mware Mirage インストールガイド」を参考に必要な機能をインストールします。

WebManagemnet インストール

デフォルトの内容(HTTP:7080、HTTPS:7443)でインストールします。
f:id:FriendsNow:20150726230954p:plain

WebAccess インストール

デフォルトの内容(HTTP:6080、HTTPS:6443)でインストールします。
f:id:FriendsNow:20150726231014p:plain

IIS 証明書バインド

「SSL サーバー証明書について」を参考に バインドの設定を行います。

Management Console インストール

インストール後、Management Console を起動します。
f:id:FriendsNow:20150726231034p:plain

フォルダを右クリックし、「Add System on localhost」を選択します。
f:id:FriendsNow:20150726231045p:plain

Mirage Server 及び Mirage Gateway を管理します。
f:id:FriendsNow:20150726231056p:plain

Mirage Gateway の構築

CSR 作成

「SSL サーバー証明書について」を参考に CSR 作成及び、証明書(PFX 形式)のダウンロードを行います。

Mirage Gateway インストール

OVA をデプロイして起動後、以下のコマンドから基本設定を行います。

> sudo su -
# /opt/vmware/share/vami/vami_config_net

resolv.conf で nameserver を設定します。

# vi /etc/resolv.conf
nameserver 192.168.1.99
Mirage Gateway 設定

https://[MirageGatewayIP]:8443/WebConsole へアクセスします。

LDAP(本例では AD)を指定します。
f:id:FriendsNow:20150726231131p:plain

Mirage Server を指定します。
f:id:FriendsNow:20150726232816p:plain

先の手順でダウンロードした証明書をアップロードします。
f:id:FriendsNow:20150726231151p:plain

Mirage Client のインストール

Mirage Client のインストール

本例では、Mirage Gateway の FQDN を指定してインストールします。
f:id:FriendsNow:20150726231215p:plain

必要に応じて、Wanova.Desktop.Configurator.exe*1で設定を行います。
f:id:FriendsNow:20150726231234p:plain

「Service」タブの「Detailed log」で、サーバとの接続ステータスを確認可能です。
f:id:FriendsNow:20150726231249p:plain

一例として、サーバと接続が失敗した際のエラー内容と対処方法を以下に記載します。

  • 接続が失敗し、下記メッセージが出力されている場合は、証明書の問題である可能性があります。例えば、ローカル PC の「信頼されたルート証明機関」に証明書がインポートされていない等が考えられます。
SslPolicyErrors: RemoteCertificateChainErrors
ERROR Wanova.Net.Transport.GenericSocketWrapper Exception caught during socket creation: The remote certificate is invalid according to the validation procedure
  • 下記メッセージが出力されている場合は、証明書の内容と Mirage Client が指定したサーバ名に齟齬がある可能性があります。例えば、Mirage Gateway の FQDN ではなく、IP アドレスを指定している等が考えられます。
SslPolicyErrors: RemoteCertificateNameMismatch
ERROR Wanova.Net.Transport.GenericSocketWrapper Exception caught during socket creation: The remote certificate is invalid according to the validation procedure

*1:C:\Program Files\Wanova\Mirage Service\Wanova.Desktop.Configurator.exe

ESXi の証明書入れ替え

こちらを参考にさせて頂きました。

ESXi の証明書は以下のフォルダに配置されています。

~ # cd /etc/vmware/ssl
/etc/vmware/ssl # ls -l
total 8
-rw-r--r--    1 root     root          1428 Jan 13 06:55 rui.crt
-r--------    1 root     root          1708 Jan 13 06:55 rui.key

既存証明書のファイル名を変更します。

/etc/vmware/ssl # mv rui.crt rui.crt.old
/etc/vmware/ssl # mv rui.key rui.key.old
/etc/vmware/ssl # ls -l
total 8
-rw-r--r--    1 root     root          1428 Jan 13 06:55 rui.crt.old
-r--------    1 root     root          1708 Jan 13 06:55 rui.key.old

新しい証明書を同フォルダに配置します。

/etc/vmware/ssl # ls -l
total 16
-rw-r--r--    1 root     root          1428 Jan 13 06:55 rui.crt
-rw-r--r--    1 root     root          1428 Jan 13 06:55 rui.crt.old
-r--------    1 root     root          1708 Jan 13 06:55 rui.key
-r--------    1 root     root          1708 Jan 13 06:55 rui.key.old

Manegement Agents を再起動します。

/etc/vmware/ssl # /etc/init.d/hostd restart
/etc/vmware/ssl # /etc/init.d/vpxa restart

証明書が更新されると、vCenterからホストが切断されますので、再接続が必要です。

CentOS で FTP サーバ構築

検証用に FTP サーバが必要になったので、CentOS で構築した際のメモ。
こちらのサイトがとても分かりやすかったので、参考にさせて頂きました。

vsftpd インストール

[root@hostname ~]# yum -y install vsftpd 

vsftpd.conf 設定

[root@hostname ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO			 <- 匿名ログイン禁止
ascii_upload_enable=YES			 <- コメントアウト:アスキーモードでの転送を許可
ascii_download_enable=YES		 <- コメントアウト:アスキーモードでの転送を許可
chroot_local_user=YES			 <- コメントアウト:chroot有効
chroot_list_enable=YES 			 <- コメントアウト:chroot有効
chroot_list_file=/etc/vsftpd/chroot_list <- コメントアウト:chroot リストファイル指定
ls_recurse_enable=YES			 <- コメントアウト:ディレクトリごと一括での転送有効
local_root=public_html			 <- 最終行へ追記:ルートディレクトリ指定
use_localtime=YES			 <- 最終行へ追記:ローカルタイムを使う

chroot_list 設定

[root@hostname ~]# vi /etc/vsftpd/chroot_list
ftpuser					 <- chroot を適用しないユーザーを追加

ユーザアカウント作成

[root@hostname ~]# useradd ftpuser
[root@hostname ~]# passwd ftpuser

ルートディレクトリ作成

[root@hostname ~]# mkdir /home/ftpuser/public_html

SELinux 無効化

[root@hostname ~]# setenforce 0
[root@hostname ~]# getenforce
※Enforcing:SELinux が有効の場合、クライアントからの接続時に下記エラーが出力される場合があります。
500 OOPS: cannot change directory:/home/user1
500 OOPS: priv_sock_get_cmd
接続がリモート ホストによって閉じられました。

vsftpd 再起動

[root@hostname ~]# /etc/rc.d/init.d/vsftpd start 

vsftpd 起動設定

[root@hostname ~]# chkconfig vsftpd on

以上

VMware のマルチパス機構について

VMware のマルチパスについて

VMware のデフォルトのマルチパスプラグインは、NMP(Native Multi-Pathing Plugin)と呼ばれる汎用のマルチパスモジュールです。NMP は SATP(Storage Array Type Plugin)と PSP(Path Selection Plugin)で構成されます。

SATP
  • 物理パスに関連付けられ、パスのフェイルオーバを制御します。
PSP
  • どの物理パスを使用して I/O 要求を送信するかを処理します。

通常、VMware 社の互換性ガイドに記載のある PSP が自動で選択されますが、任意の PSP が適用されるようデフォルトを変更する事が可能です。

マルチパスの確認方法

SATP のリストは下記のコマンドで表示します。

~ # esxcli storage nmp satp list
Name                 Default PSP    Description
-------------------  -------------  ------------------------------------------
VMW_SATP_MSA         VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_ALUA        VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_DEFAULT_AP  VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_SVC         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_EQL         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_INV         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_EVA         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_ALUA_CX     VMW_PSP_RR     Placeholder (plugin not loaded)
VMW_SATP_SYMM        VMW_PSP_RR     Placeholder (plugin not loaded)
VMW_SATP_CX          VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_LSI         VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_DEFAULT_AA  VMW_PSP_FIXED  Supports non-specific active/active arrays
VMW_SATP_LOCAL       VMW_PSP_FIXED  Supports direct attached devices

PSP のリストは下記のコマンドで表示します。

~ # esxcli storage nmp psp list
Name           Description
-------------  ---------------------------------
VMW_PSP_MRU    Most Recently Used Path Selection
VMW_PSP_RR     Round Robin Path Selection
VMW_PSP_FIXED  Fixed Path Selection

デフォルトの PSP を Round Robin に変更したい場合は下記を実行します。

~ # esxcli storage nmp satp set -s VMW_SATP_DEFAULT_AA -P VMW_PSP_RR
Default PSP for VMW_SATP_DEFAULT_AA is now VMW_PSP_RR

~ # esxcli storage nmp satp list
Name                 Default PSP    Description
-------------------  -------------  ------------------------------------------
VMW_SATP_MSA         VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_ALUA        VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_DEFAULT_AP  VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_SVC         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_EQL         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_INV         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_EVA         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_ALUA_CX     VMW_PSP_RR     Placeholder (plugin not loaded)
VMW_SATP_SYMM        VMW_PSP_RR     Placeholder (plugin not loaded)
VMW_SATP_CX          VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_LSI         VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_DEFAULT_AA  VMW_PSP_RR     Supports non-specific active/active arrays
VMW_SATP_LOCAL       VMW_PSP_FIXED  Supports direct attached devices

なお、マルチパスのルールを確認するには下記を実行します。

~ # esxcli storage nmp satp rule list
Name                 Device  Vendor   Model             Driver  Transport  Options                     Rule Group  Claim Options                        Default PSP  PSP Options  Description
-------------------  ------  -------  ----------------  ------  ---------  --------------------------  ----------  -----------------------------------  -----------  -----------  --------------------------------------------------------------------------
VMW_SATP_MSA                          MSA1000 VOLUME                                                   system                                                                     MSA 1000/1500 [Legacy product, Not supported in this release]
VMW_SATP_ALUA                NETAPP                                        reset_on_attempted_reserve  system      tpgs_on                              VMW_PSP_RR                NetApp arrays with ALUA support
VMW_SATP_ALUA                IBM      2810XIV                                                          system      tpgs_on                              VMW_PSP_RR                IBM 2810XIV arrays with ALUA support
VMW_SATP_ALUA                IBM      2107900                              reset_on_attempted_reserve  system                                           VMW_PSP_RR     
VMW_SATP_ALUA                IBM      2145                                                             system                                           VMW_PSP_RR
<...snip...>

マルチパスのルールを追加する場合は下記を実行します。

esxcli storage nmp satp rule add -V "Vendor" -M "Model" -e "Description"

以上

vSwitch でミラーリングを設定する

標準スイッチでは、分散スイッチと異なり、ポートをミラーリング機能をサポートしていませんが、任意の仮想マシンにパケットをミラーする事が可能です。

標準スイッチの作成

「Networking」タブで「Virtual switches」を選択し「Add host Networking」をクリックします。
f:id:FriendsNow:20150131201523p:plain

「Virtual Machine Port Group for a Standard Switch」を選択し「Next」をクリックします。
f:id:FriendsNow:20150131201547p:plain

「New Standard Switch」を選択し「Next」をクリックします。
f:id:FriendsNow:20150131201604p:plain

試験のため NIC はアサインせず、「Next」をクリックします。
f:id:FriendsNow:20150131201611p:plain

VLAN ID を「ALL(4095)」に指定し「Next」をクリックします。
f:id:FriendsNow:20150131201619p:plain

内容を確認し「Finish」をクリックします。
f:id:FriendsNow:20150131201626p:plain

標準スイッチが作成されている事を確認します。
f:id:FriendsNow:20150131201648p:plain

仮想マシンへのポートグループ設定

現在、仮想マシンは分散スイッチのポートグループをアサインしているので、作成したスイッチへ移行します。

「Networking」タブで「DSwitch」を右クリックし「Migrate VM to Another Network」をクリックします。
f:id:FriendsNow:20150131201654p:plain

Source Network の「Specific Network」で「Browse」をクリックします。
f:id:FriendsNow:20150131201700p:plain

移行元(分散スイッチ)のポートグループを選択して「OK」をクリックします。
f:id:FriendsNow:20150131201706p:plain

Destination Network の「Specific Network」で「Browse」をクリックします。
f:id:FriendsNow:20150131201714p:plain

移行先(標準スイッチ)のポートグループを選択して「OK」をクリックします。
f:id:FriendsNow:20150131201725p:plain

内容を確認し「Next」をクリックします。
f:id:FriendsNow:20150131201733p:plain

移行対象の仮想マシンを選択して「Next」をクリックします。
f:id:FriendsNow:20150131201741p:plain

内容を確認し「Finish」をクリックします。
f:id:FriendsNow:20150131201750p:plain

対象の仮想マシンが標準スイッチに移行している事を確認します。
f:id:FriendsNow:20150131201759p:plain

ミラーリングの設定

テストのため、MyVM1 から MyVM3へ Ping し、MyVM2 で tcpdump を実行します。
現時点では、MyVM2 にパケットが転送されていません。
f:id:FriendsNow:20150131201805p:plain

作成した仮想スイッチを選択し「Edit Settings」をクリックします。
f:id:FriendsNow:20150131201818p:plain

「Security」の Promiscuous mode を「Accept」に変更し「OK」をクリックします。
f:id:FriendsNow:20150131201828p:plain

MyVM2 にパケットが転送され、確認できるようになります。
f:id:FriendsNow:20150131202112p:plain

Ontap シミュレーターで Flash Pool を試す

Flash Pool とは

HDD と SSD が混在したアグリゲートを構成し、使用頻度の高いデータを SSD のキャッシュへ集めることで、HDD へのアクセスを低減する機能になります。データを移動させるわけではなく、アクセス頻度の高いデータを ONTAP が自動で判別し、キャッシュされる事から、運用稼動は発生しません。
下記は、ユーザ数の増加に伴うスループットの傾向です。

f:id:FriendsNow:20150311205706p:plain
出典:Tech OnTap

HDD のみで構成した場合、100ユーザの時点で HDD がボトルネックになり、スループットが頭打ちになっています。これに対して、Flash Pool を使用した場合は、ユーザの増加に伴い、スループットが向上しています。

Flash Pool の設定方法

ONTAP シミュレータで SSD Disk を擬似的に作成し、Flash Pool をを設定する際の手順になります。

SSD Disk の作成

Unlock the Diag user(7-Mode)

> priv set diag
*> useradmin diaguser unlock
*> useradmin diaguser password

Unlock the Diag user(Clustered Mode)

> set diag
*> security login unlock -username diag -vserver cluster1
*> security login password -username diag -vserver cluster1

Enter system shell(7-Mode)

*> systemshell
login: diag
Password:
%

Enter system shell(Clustered Mode)

*> systemshell -node cluster1-01
login: diag
Password:
%

Create SSD Disks(7-Mode/Clustered Mode)

% setenv PATH /sim/bin:$PATH
% cd /sim/dev
% sudo vsim_makedisks -t 35 -a 2 -n 14
% exit

Vefify the Disks(7-Mode)

*> disk show -n
*> sysconfig -r

Vefify the Disks(Clustered Mode)

*> disk show -container-type unassigned
*> system node run -node cluster1-01 sysconfig -r

Assign the Disks(7-Mode)

> disk assign  v6.16

Assign the Disks(Clustered Mode)

> disk assign -disk v6.16 -owner cluster1-01
Flash Pool の有効化

Enable the Flash Pool(7-Mode)

> aggr options aggr1 hybrid_enabled on
> aggr add aggr1 -T SSD 14

Enable the Flash Pool(Clustered Mode)

> storage aggregate modify -aggregate aggr1 -hybrid-enabled true
> aggregate add-disks -aggregate aggr1 -disktype SSD -diskcount 14

Use the Flash Pool(7-Mode)

> vol create myvol aggr1 1g

Use the Flash Pool(Clustered Mode)

> volume create -vserver svm-01 -aggregate aggr1 -volume myvol -size 1g

以上