Find Communities by: Category | Product

前回は、Elastic Cloud Storage(ECS)をご紹介いたしました。その中でIsilonとECSの連携について軽く触れましたが、今回は具体的にどのように動作するのか設定と併せてご紹介します。

 

 

CloudPools

IsilonとECSの連携はIsilonのCloudPoolsという自動階層化の機能によって実現しますが、CloudPoolsに入っていく前に少しだけストレージの自動階層化についてご説明します。

自動階層化の機能自体は古くからILMやHSMなどと言われており、高速な(性能単価に優れている)ストレージと低速な(容量単価に優れている)ストレージ間でデータを自動で移動させる技術のことを指します。特に新しい技術ではありませんが、最近では非構造化データの肥大化や分析基盤のアーキテクチャにおいて高速(オールフラッシュ)で分析を行い結果の保管のために低速(アーカイブ)に移動させるようなニーズが高まっています。

Isilonには性能単価に優れたノード、容量単価に優れたノードなど様々なタイプのノードがありますがSmartPoolsによりノードの混在が可能となりノード間でポリシベースの自動階層化を行うことができます。長期間参照されないファイルは容量単価の良いノードに自動的に移すことにより性能と容量とコストのバランスが取れTCOの削減につながります。

このSmartPoolsの機能を拡張してクラウドストレージにアーカイブする機能のことをCloudPoolsと言います。また、クラウドストレージ以外にもECSや別クラスタのIsilonなどに階層化することもできます。

 

なお、ECSは容量無制限にスケールアウトできるのでIsilonとECSを組み合わせることにより、実質無制限のストレージシステムを作ることができます!(と言ってもIsilonのみで68PBまでスケールアウトできます

cloudpools.png

                    どの階層にファイルがあってもクライアントやアプリケーションからは透過的にアクセスできます

 

 

上記のとおり自動階層化自体は最新の技術ではないですが、実は意外と自動階層化の機能を有していないストレージ製品もあります。特に従来型のNASではRAIDでデータ保護を行っていたりボリュームという概念があるためファイル単位での自動階層化が出来ないものや、そもそも自動階層化をサポートしていない製品があります。Isilonには以前から自動階層化の機能であるSmartPoolsが実装されており、OneFS 8.0から実装されたCloudPoolsも2年以上の実績があります。Isilonであればノード間やパブリッククラウドに対してファイル単位で階層化を行うことができます。

 

 

今回は以下とおり、Isilon(OneFS)シミュレータ 1台と、ECS Community Edition 1台を用意しました。実際に試して頂く際にECS Community Editionは前回の内容を参考に準備いただければと思いますが、準備するのが大変な場合はECS TEST DRIVEをご利用頂くこともできます。

env.png

 

 

 

1. ECSの設定

ECS側では、CloudPools用の専用NamespaceとCloudPoolsからアクセスする際の専用のユーザを作成していきます。なお、Bucketは自動的に作成されますので作成不要です。

 

1.1 Namespaceの作成

はじめにCloudPools用のNamespaceを作成します。ECS Portalにログインして「Manage」から「Namespace」を選択します。次に「New Namespace」をクリックして以下を入力します。

・Name = cloudpools

入力後「Save」をクリックします。

create_namespace.png

 

以下のとおりcloudpoolsというNamespaceが作成されたことを確認します。

list_namespace.png

 

 

1.2 ユーザの作成

CloudPoolsからアクセスする際に必要なユーザを作成します。「Manage」から「Users」を選択します。次に、「New Object User」をクリックして以下を入力します。

・Name = cloudpools_user1

・Namespace = cloudpools

入力後「Save」をクリックします。

create_user.png

 

以下のとおりcloudpools_user1というユーザが作成されたことを確認します。

list_user.png

 

1.3 Secret Keyの生成

上記1.2で作成したcloudpools_user1のSecret Keyを生成していきます。cloudpools_user1の「Actions」にある「Edit」をクリックします。以下の画面のS3 / Atmosにある「Generate & Add Secret Key」をクリックします。「Show Secret Key」のチェックボックスにチェックを入れるとSecret Keyが表示されますので内容をコピーします。(コピーしたSecret Keyは2.2で使用します。)

key_gen.png

 

 

2. Isilon CloudPoolsの設定

Isilon側の設定の流れとしては、先ずSmartPoolsとCloudPoolsの評価ライセンスを有効化します。次にCloudPoolsの設定(Cloud Storage AccountとCloudPoolの作成)を行い、自動階層化のポリシを定義していきます。

 

2.1 ライセンスの有効化

CloudPoolsの利用にあたりライセンスを有効化する必要があります。OneFS 8.1では製品やシミュレータの評価ライセンスをお客様やパートナ様のほうでも有効化いただけるようになりました。

OneFS web administration interface(Web UI)にログインします。「Cluster Management」から「Licensing」を選択します。一番下に「Manage trial versions of software modules」という項目がありますので、「Manage Trials」をクリックします。

Manage trialsの画面がポップアップされ、どの機能を評価するか選択します。CloudPoolsはSmartPoolsのライセンスも必要になるため最低限SmartPoolsとCloudPoolsを選択し「Start Trial」をクリックして有効にしてください。(下記は全部の機能を有効にした例です。)

trial_license_activate.png

 

 

2.2 Cloud Storage Accountの作成

ECSにアクセスするためのアカウントを作成します。「File System」メニューから「Storage Pools」の「CloudPools」を選択し「Create a Cloud Storage Account」をクリックします。

以下のとおりECSの接続情報を入力していきます。

・Name or Alias = ecs_cloudpools_user1

・Type = EMC ECS Appliance

・URI = http://luna.isilonian.local:9020

・User Name = cloudpools_user1

・Key = my2DnVGKC7xdh+D2Cg148nhN8NPXL/GPZkvwk0zH(1.3 で生成/確認したSecret Key)

入力後に「Connect Account」をクリックします。このタイミングで接続のテストが行われ、ECS側にBucketが生成されます。

2_create_acct.png

 

2.3 CloudPoolの作成

続いて、「Create a CloudPool」をクリックして以下の内容を入力します。

・Name = ecs_cloudpool1

・Type = EMC ECS Appliance

・Account in CloudPool = ecs_cloudpools_user1

4_cp_create.png

 

 

登録が完了した後、以下のとおりCloud Storage AccountsとCloudPoolsの状態がEnabledとなっていることを確認します。

5_cp_created.png

 

 

2.4 ECS PortalからBucketsの確認

ECS PortalからBucketsを確認するとcloudpoolsのnamespace配下にBucketが作成されたことがわかります。

6_bucket.png

 

同様に、S3 Browserからも空のBucketsが確認できます。

s3_browser.png

 

3. 自動階層化の設定

自動階層化にあたりポリシを設定していきます。SmartPoolsでIsilon内で階層化する場合でもCloudPoolsで外部ストレージへ階層化する場合でもFile Pool Policyで設定することで、きめ細かいポリシを一気通貫で作成することができます。ポリシで設定可能な項目としては、ファイル名、ファイルパス、ファイルタイプ、ファイルサイズ、作成日時、更新日時、アクセス日時、ファイル属性、属性変更日時があり、これらをANDもしくはORで組み合わせて設定することができます。

「File System」メニューから「Storage Pools」の「File Pool Policies」を選択します。次に「Create a File Pool Policy」をクリックします。

各フィールドに以下の内容を入力します。

・Policy Name = archive_to_ecs

・File Matching Criteria = "Modified" "is older than" "1" "second" agoを選択(条件にマッチすれば何でもOKです。)

・Move to cloud storage = チェックボックスのチェックをつける

・CloudPool Storage Target = ecs_cloudpool1

入力後、「Create Policy」をクリックします。

8_filepool.png

 

 

 

4. 動作確認

 

4.1 テストファイルの作成

/ifs配下にhogeという名前のディレクトリを作成してSMB共有を設定し幾つかファイルを配置します。配置するファイルは何でも良いですが、今回は動作確認しやすいように少し大きめなサイズのファイルを作成します。なお、簡単に大きめなサイズのファイルが作れる&圧縮が効くという目的でペイントを使ってビットマップを作成します。

bitmap.JPG.jpg

 

9.3MBのファイルが作成されました。File System Explorerからは以下のとおり確認できます。

fileexplorer.png

duコマンドを実行しても同様に9.3MBのビットマップが確認できます。

sim-1# du -sh 画像.bmp

9.3M    画像.bmp

 

isi getコマンドで実体があるか確認します。SmartLinkedの項目がTrueになっているファイルはIsilon側に実体が存在せずクラウド(今回の場合はECS)に移動しています。現時点では以下のとおりFalseになっています。ちなみに、OneFS 8.0ではSmartLinkedではなくStubbedと表示されます。

sim-1# isi get -DD 画像.bmp | grep -i smartlinked

*  SmartLinked:        False

 

4.2 SmartPools Jobの実行

SmartPoolsのJobを手動で実行します。(通常はスケジュールによる自動実行となりますが動作確認のため。)

「Cluster Management」の「Job Operations」、「Job Types」と辿りSmartPoolsの「Start Job」をクリックします。以下の画面が表示されますので「Start Job」を実行します。

start_job.png

 

CloudPoolsの状態はisi cloud jobs listコマンドで確認ができます。"Effective State"がrunningからcompletedに変わります。

sim-1# isi cloud jobs list

ID   Description                             Effective State  Type

--------------------------------------------------------------------------------------

1    Write updated data back to the cloud    running          cache-writeback

2    Expire CloudPools cache                 running          cache-invalidation

3    Clean up cache and stub file metadata   running          local-garbage-collection

4    Clean up unreferenced data in the cloud running          cloud-garbage-collection

10                                           completed        archive

 

isi getコマンドを実行すると"SmartLinked"がTrueに変化していることが確認できます。

sim-1# isi get -DD 画像.bmp | grep -i smartlinked

*  SmartLinked:        True

        SmartLinked file flags   0      5

        SmartLinked file size    5      9

 

duコマンドを実行すると、ファイルサイズが減っている(512B)ことが確認できます。これは、Isilon側に実体は存在せずSmartLinkのみ保存されているためです。もちろんユーザからの見た目のパスや実際のファイルサイズに変更はありません。

sim-1# du -sh 画像.bmp

512B    画像.bmp

 

 

4.3 ECSのBucketの確認

ECSのBucketをS3 Browserで確認すると、1MBのオブジェクトが9個と316.85KBのオブジェクトが1個存在していることが確認できます。クラウドストレージにアーカイブされたデータをIsilonではCloud Data Object(CDO)と呼んでいます。CDOは1MB単位で分割されECSへ格納されます。1個だけある316.85KBは端数(残り)です。

9_s3_browser.png

 

 

4.4 CloudPoolsによる圧縮機能

CloudPoolsは転送する際に圧縮と暗号化を行うオプションがあります。先程試したファイルと同じものを圧縮した場合にどうなるか試してみます。(なお、今回作成したビットマップは非常に圧縮が効くようになっておりWindowsの標準のZIP圧縮ツールを使うと9.42KBとなりました。)

sim-1# du -sh 画像2.bmp

9.3M    画像2.bmp

 

「File System」メニューから「Storage Pools」の「File Pool Policies」を選択します。上記3.で作成したFile Pool Policyを「View / Edit」をクリックし編集します。Compress data before transferにチェックを入れ「Save Changes」で保存後、上記4.2と同様の操作でSmartPoolsを実行します。

compress.png

 

4.5 ECSのBucketの確認

ECSのBucketを確認すると、今度は1.08KBのオブジェクトが8個、1.12KBのオブジェクトが1個と408Bのオブジェクトが1個となりました。合計で約10KBですので約900分の1に圧縮されていることが確認できます。

compress_s3_browser.png

 

 

 

 

さいごに

ご覧頂きましたように、IsilonのCloudPoolsとECSの組み合わせによって性能と容量のバランスに優れたシームレスなストレージシステムを作ることができます。また、ECSはIsilonのアーカイブ先だけではなくバックアップのターゲットやS3を用いたモバイル/Webベースのアプリケーションの基盤などにも使用可能ですので、これらのデータを統合する中核のストレージとしてECSを配置することによりTCOの削減にも繋がります。なお、ECSのGeoレプリケーションは高い保護レベルでデータのオーバヘッド削減できるアルゴリズムを採用していますので特にGeoレプリケーションを検討されている場合は是非ご連絡ください。

geo.png

CloudPools含めIsilonおよびECSは今後も様々な機能がエンハンスされていきますのでご期待ください。

 

 

参考情報

ISILON CLOUDPOOLS AND ELASTIC CLOUD STORAGE (Solution Guide)

DELL EMC ISILON CLOUDPOOLS

Isilon Simulator download

ECS CE download

ECS Test Drive




バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

 

安井 謙治

Dell EMC Unstructured Data Solutions

UDS事業本部 SE

私が所属しているUDS事業本部(旧アイシロン事業本部)は、Unstructured Data Solutionsが英語表記での正式名称でして名称のとおり非構造化データ(ファイル、オブジェクト、ストリームデータ)を中心としたソリューションを扱っております。今回は非構造化データの中でもニーズが増えているオブジェクトストレージ DellEMC Elastic Cloud Storage(ECS)についてご紹介します。

いつものように、簡単にECSの概要をご紹介して、後半でECS Community Edition(無償版のECS)をセットアップしていきたいと思います。

ECS.png

 

 

Elastic Cloud Storage (ECS)

DellEMCのオブジェクトストレージの歴史は古く2002年リリースのCenteraから始まります。その後Atmosを経て2014年にECSをリリースいたしました。Centeraがリリースされた当初は長期保管データ(アーカイブ)用ストレージとして利用されることが多かったですが3世代目であるECSでは時代の変遷に伴い各種機能を実装した結果、コンテンツのグローバル共有ストレージ、モバイルアプリケーション用ストレージ、ビッグデータやIoTでの大量な解析データ(データレイク)用ストレージとしても利用されるようになりました。

また、DellEMCのIsilonやDataDomainを始め3rd Party製品との連携ができますので様々な製品のバックエンドのストレージとして利用されることも増えてきております。

ecosystem.png

                   ECSのエコシステム

 

 

スケールアウト型のアーキテクチャやサポートしているプロトコルなどECSとIsilonで共通している部分は多いですがECSとIsilonは以下のような違いがあります。

なお、両製品ともに市場から大きな評価を得ており、ガートナー社のマジック・クアドラントにおいてECSとIsilonはビジョンの完全性と実行能力におけるリーダーに位置付けられています。(分散ファイル システムおよびオブジェクト ストレージのマジック・クアドラント

ECSIsilon
ストレージアーキテクチャスケールアウトオブジェクト

スケールアウトNAS

データアクセス

オブジェクト(S3、Swift、Atmos、CAS)

HDFS、NFS、SMB(CIFS-ECS Tool)

ファイル(SMB、NFS)

HDFS、Swift、FTP、HTTP

トポロジ

サイトを跨ったアクティブ/アクティブ

構成が可能(最大8サイト)、グローバルネームスペース

サイト間でアクティブ/パッシブ構成(基本2サイト)

※カスケードレプリケーションより複数サイト構成も可能

主なユースケースモダンアプリケーション、アーカイブ、データレイク大規模NAS、データレイク、アーカイブ

 

 

 

ECSのセットアップ

ECS Community EditionはGitHubにて無償で公開されておりSource版とOVA版があります。今回はOVA版を使ってセットアップしていきます。なお、ECS Community Editionはこちらからダウンロードください。(DellEMC ECS Software Download現時点では、2018年3月にリリースされたECS 3.2が最新となります。

 

環境準備

ECS Community Editionを評価いただく際に必要な環境は下記となります。ECS Community Editionの仮想マシンを稼働させるためのvSphere ESXとvCenter Server、ECSにアクセスするS3クライアント(S3 BrowserやCyberduck、CloudBerry Explorerなど。今回はS3 Browserを使います)をご用意ください。

env_ecsce.png

ECSは分散ストレージですので本来複数ノード必要となります。ECSのデフォルトのイレイジャーコーディングは、12+4(データ+コーディング)となり最低4ノード必要となりますが、今回は機能検証が目的のため1ノードで構成します。なお、ECS Community Editionでも簡単に複数ノード構成を試していただくことが出来ますが、仮想マシン1台につき下記リソースが必要となります。

コンポーネント最小要件
CPU4
メモリ16 GB
ハードディスク1(システム用)16 GB
ハードディスク2(データ用)104 GB

 

 

ECS Community EditionのOVAファイルのデプロイ

1. vSphere Web Clientを使用してOVAファイルをデプロイします。ファイルメニューの「OVFテンプレートのデプロイ」からダウンロードしたOVAファイル(dellemc-ecsce-3.2.0.0-install-node-2.7.0-vm0.ova)を選択し登録していきます。

2. OVAのデプロイ後、仮想マシンの「設定の編集」を開きメモリを16GBに変更します。(初期状態は2GB)

ecsce_prop.png

 

 

ECS Community Editionの設定

1. 仮想マシンの電源を投入してコンソールに入ります。ユーザ名はadmin、パスワードはChangeMeでログインします。なお、以後コマンドを実行していきますので必要に応じてroot権限(sudo)で実行してください。なお、ECS Community EditionはAnsibleで簡単に設定できるようになっていますのでコマンド数回の実行でセットアップが完了します。

 

2. nmcli(もしくはnmtui)でネットワークの設定を行います。OVA版はens32がネットワークアダプタ1となります。ホスト名は、この後のセットアップで設定しますのでデフォルト(localhost)のままで問題ありません。

[admin@localhost ~]$ nmcli c mod ens32 ipv4.addresses <IPアドレス>

[admin@localhost ~]$ nmcli c mod ens32 ipv4.gateway <Gateway IP>

[admin@localhost ~]$ nmcli c mod ens32 ipv4.dns <DNS IP>

[admin@localhost ~]$ nmcli c mod ens32 ipv4.method manual

[admin@localhost ~]$ nmcli c mod ens32 connection.autoconnect yes

[admin@localhost ~]$ nmcli c up ens32

必須ではありませんが、このタイミングでvSphereのコンソールから抜けてsshで接続します。


3. fdiskでハードディスク1とハードディスク2を確認します。ハードディスク2は104GBに設定されていますので容量から下記の赤字(/dev/sdb)がハードディスク2であることが確認できます。(104*1024*1024*1024=111669149696 bytes)

[admin@localhost ~]$ sudo fdisk -l

[sudo] password for admin:


Disk /dev/sdb: 111.7 GB, 111669149696 bytes, 218103808 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes



Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x0009563f


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048     2099199     1048576   83  Linux

/dev/sda2         2099200    33554431    15727616   8e  Linux LVM


Disk /dev/mapper/cl-root: 14.4 GB, 14382268416 bytes, 28090368 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes



Disk /dev/mapper/cl-swap: 1719 MB, 1719664640 bytes, 3358720 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

4. videployコマンドでdeploy.ymlを編集していきます。なお、videployやこの後使用するコマンドは/home/admin/bin配下に存在しており既にパスが通っております。

[admin@localhost ~]$ videploy

 

5. 下記deploy.ymlの赤字部分を編集します。

~8行目~

licensing:

  license_accepted: true

trueに変更することで使用許諾に同意したことになります。

 

~31行目~

  install_node: <IPアドレスまたはホスト名>

インストールを実行するノードのIPアドレスまたはホスト名を入力します。


~64行目~

  node_defaults:

    dns_domain: isilonian.local

    dns_servers:

      - DNSサーバのアドレス>

    ntp_servers:

      - <NTPサーバのアドレス>

DNSサーバおよびNTPサーバの情報を入力します。


~97行目~

  storage_pool_defaults:

    is_cold_storage_enabled: false

    is_protected: false

    description: Default storage pool description

    ecs_block_devices:

      - /dev/sdb

fdiskで確認したハードディスク2のデバイス名に変更します。


~106行目~

  storage_pools:

    - name: sp1

      members:

        - <IPアドレスもしくはホスト名>

      options:

        is_protected: false

        is_cold_storage_enabled: false

        description: My First SP

        ecs_block_devices:

          - /dev/sdb

membersにセットアップするノードのIPアドレスもしくはホスト名(複数台の場合は改行して入力)、ecs_block_devicesはfdiskで確認したハードディスク2のデバイス名に変更します。

 

6. deploy.ymlの編集が終了したら:wq!で保存して編集モードから抜けます。

 

7. ova-step1を実行します。

[admin@localhost ~]$ ova-step1

 

8. ova-step2を実行します。

[admin@localhost ~]$ ova-step2

 

以上で、ECS Community Editionのセットアップは完了です。

ECS Community Editionでは、ova-step1を実行するとホスト名は自動的に付与されますので1台目はlunaとなります。(余談ですが、2台目からはphobos、deimos、io、europa、ganymede、callisto、amaltheaと衛星が続きます。それ以上知りたい場合は、https://github.com/EMCECS/ECS-CommunityEdition/blob/master/ui/etc/autonames.ymlを参照ください

 

 

ECS PortalへのログインとBucketの作成

1. ブラウザで、https://<ECSのIPアドレスまたはホスト名>にアクセスします。ユーザ名はroot、パスワードはChangeMeでログインします。

ECS_login.png

 

2. ログイン後にパスワードを変更するように促されますので新しいパスワードに変更します。

ChangeMe.png

 

3. 再度ログインするとGETTING STARTED TASK CHECKLISTが表示されますので、「No thanks, I'll get started on my own」を選択してDashboardに移動します。

Getting_Started.png

 

4. Dashboardに表示されている内容をひと通り確認します。

ECS_Dashboard1.png

 

5. 続いてBucketを作成していきます。「Manage」から「Buckets」を選択してBucketを作成します。今回は「Bucket Name」にbk1、「Bucket Owner」にobject_user1を入力します。入力後、「Next >」で進みデフォルトのまま「Save」して終了します。

Create_Bucket.png

 

6. bk1というBucketが作成されたことを確認します。

bk1_created.png

 

7. 次に、「Users」からobject_user1の行の「Edit」を選択し、「S3/Atmos」にある"Show Secret Key"のチェックボックスをチェックします。Secret Keyに表示されている内容をコピーします。(デフォルトはChangeMeChangeMeChangeMeChangeMeChangeMeです)

Users_SecretKey.png

 

 

 

S3クライアントからのファイルアップロード

1. S3 Browserを起動して「Accounts」から「 Add New Account」を選択し以下のように登録します。

 ・Account Name:ECS

 ・Account Type:S3 Compatible Storage

 ・REST Endpoint:<IPアドレスもしくはホスト名:9021>

 ・Signature Version:Signature V2

 ・Access Key ID:object_user1

 ・Secret Access Key:ChangeMeChangeMeChangeMeChangeMeChangeMe(ECS Portalのobject_user1からコピーしたSecret Key)

S3B_setup.png

 

2. 「Upload」からファイルを選択しアップロードします。

S3_browser_uploading.png

 

 

3. 書き込み後にECS PortalのDashboardを確認します。

ECS_Dashboard.png

 

 

 

おまけ

DellEMCのサポートアカウントをお持ちの場合はCIFS-ECS Toolがダウンロードできます。CIFS-ECS ToolをWindowsにインストールすることでECSをローカルストレージのように利用することが可能です。

CIFSECS.JPG.jpg

 

 

 

参考情報

DellEMC ECS Software Download

ECS Community Edition OVA Installation(GitHub)

分散ファイル システムおよびオブジェクト ストレージのMagic Quadrant

Elastic Cloud Storage データシート

ECS Overview and Architecture

 

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

 

安井 謙治

Dell EMC Unstructured Data Solutions

UDS事業本部 SE

今までの流れでタイトルを"IsilonianTech 第7回 Isilonとオープンソース ~Isilon Hadoop tools~"にするか悩んだのですが、昨今Hadoopという言葉だけでは収まりきれずデータアナリティクス全般の基盤として採用頂くことも多いので"Isilonとデータアナリティクス"というタイトルにしました。

Isilonはデータアナリティクス基盤(データレイク)としての相性が非常に良い製品です。各ベンダが提供している様々な商用のアナリティクス製品の基盤として幅広く採用されているだけでなくオープンソースとの組み合わせも多いので、今後もストリーミングなどのワークロードとの連携を強化していく予定です。

Analytics.png

     Isilonは、HDFSをネイティブに統合するために2012年1月(OneFS 6.5.5)からHDFSに対応しており現在まで他の追随を許していません。

     事実、昨年の段階でデータアナリティクス基盤として220PB、440社以上の実績があります。

 

Isilonがデータアナリティクス製品と相性が良い理由は幾つもあるのですが、主だった点としては拡張が容易(スケールアウト)、マルチプロトコル、インプレース分析、ディザスタリカバリ、コンピュートとデータを分離することによるライフサイクルやデータ移行からの解放などが挙げられます。またHadoopに関しては複数ディストリビューションをサポートしているためマルチディストリビューションでの使用も可能としています。更にIsilonの全ノードが、Name Node(メタデータを格納するノード)とData Nodeの役割を担うことになり可用性や容量の効率面に於いてもメリットが出てきます。(Hadoop分析にDellEMC ISILONを選ぶ主な理由

Role.png


今回は、あらためてClouderaのCDH(Cloudera Distribution with Apache Hadoop)との組み合わせに関する基本的な設定についてご紹介します。最低限用意するものはCDH用のLinux1台とIsilonSD Edge(またはシミュレータ)となります。Hadoopをあまりご存知ないかたや、動かすために何から始めれば良いのかわからないというかたも、本ブログでセットアップの流れをご確認頂き、出来れば一度セットアップして頂けるとIsilonとHadoopの良さをご理解いただけると思います。なお、導入にあたっては下記の導入ガイドおよびベストプラクティスが参考になります。

EMC ISILON ONEFS WITH CLOUDERA HADOOP INSTALLATION GUIDE

EMC ISILON BEST PRACTICES GUIDE FOR HADOOP DATA STORAGE


CDH_ENV.png

 

 

1. Isilonの設定

はじめにIsilonから準備していきます。HDFS(無償)ライセンスが入っているかを確認し、SmartConnectやAccessZoneの設定をしていきます。


1.1 ライセンスの確認

HDFSとSmartConnect Advancedのライセンスが入っているかを確認します。IsilonSD Edgeを使う場合は既にライセンスが有効になっており下記のように表示されます。なお、Isilonは全プロトコルライセンスが無償です。

sdedge-1# isi license list

OneFS License ID: -

Valid Signature: Yes


Module                Licensed node count  Actual node count  Status     Expiration date

-----------------------------------------------------------------------------------------

SMARTQUOTAS           6 Nodes              3 Nodes            Licensed   -   

SNAPSHOTIQ            6 Nodes              3 Nodes            Licensed   -   

SMARTCONNECT_ADVANCED 6 Nodes              3 Nodes            Licensed   -  

SYNCIQ                6 Nodes              3 Nodes            Licensed   -   

SMARTPOOLS            6 Nodes              3 Nodes            Licensed   -   

SMARTLOCK             0 Nodes              0 Nodes            Unlicensed -   

HDFS                  6 Nodes              3 Nodes            Licensed   -   

SMARTDEDUPE           6 Nodes              3 Nodes            Licensed   -   

CLOUDPOOLS            0 Nodes              0 Nodes            Unlicensed -   

SWIFT                 6 Nodes              3 Nodes            Licensed   -   

HARDENING             0 Nodes              0 Nodes            Unlicensed -   

ONEFS                 6 Nodes              3 Nodes            Licensed   -   

-----------------------------------------------------------------------------------------

Total: 12

 

1.2 Access Zoneの作成

ベストプラクティスでは、デフォルトのSystem Zoneとは別にHDFS専用のAccess Zoneを用意することを推奨しています。Access ZoneとはIsilonを論理的に分割することでネットワークや共有、認証基盤を分離する機能です。今回は、zone1-cdhというAccess Zoneを作成します。

sdedge-1# isi zone zones create --name=zone1-cdh --path=/ifs/zone1/cdh --create-path

sdedge-1# isi zone zones modify --user-mapping-rules="hdfs=>root" --zone zone1-cdh

sdedge-1# isi zone zones view zone1-cdh

                       Name: zone1-cdh

                       Path: /ifs/zone1/cdh

                   Groupnet: groupnet0

              Map Untrusted: -

             Auth Providers: lsa-local-provider:zone1-cdh

               NetBIOS Name: -

         User Mapping Rules: hdfs=>root

       Home Directory Umask: 0077

         Skeleton Directory: /usr/share/skel

         Cache Entry Expiry: 4H

Negative Cache Entry Expiry: 1m

                    Zone ID: 2

 

1.3 SmartConnectの設定

今回は、SmartConnect Zone Nameをsc.isilonian.localという名前で作成します。なお、CDHのマシンとDNSで名前解決(正引き/逆引き)出来るようにしておきます。

sdedge-1# isi network pools create --id=groupnet0:subnet0:hadoop-pool-cdh --ranges=<IPレンジを入力します> --access-zone=zone1-cdh --alloc-method=dynamic --ifaces=1:ext-1,2:ext-1,3:ext-1 --sc-subnet=subnet0 --sc-dns-zone=sc.isilonian.local --description=hadoop

 

作成したSmartConnectの確認

sdedge-1# isi network pools view --id=groupnet0:subnet0:hadoop-pool-cdh

                     ID: groupnet0.subnet0.hadoop-pool-cdh

               Groupnet: groupnet0

                 Subnet: subnet0

                   Name: hadoop-pool-cdh

                  Rules: -

            Access Zone: zone1-cdh

      Allocation Method: dynamic

       Aggregation Mode: lacp

     SC Suspended Nodes: -

            Description: hadoop

                 Ifaces: 1:ext-1, 2:ext-1, 3:ext-1

              IP Ranges: <IPレンジ>

       Rebalance Policy: auto

SC Auto Unsuspend Delay: 0

      SC Connect Policy: round_robin

                SC Zone: sc.isilonian.local

    SC DNS Zone Aliases: -

     SC Failover Policy: round_robin

              SC Subnet: subnet0

                 SC TTL: 0

          Static Routes: -

 

1.4 HDFSブロックサイズの設定

ブロックサイズを大きくすることにより殆どのケースでパフォーマンスを向上させることができるのでHDFSのブロックサイズを変更します。(デフォルトは64MB)

sdedge-1# isi hdfs settings modify --zone=zone1-cdh --default-block-size=128M

sdedge-1# isi hdfs settings view --zone=zone1-cdh

                 Service: Yes

      Default Block Size: 128M

   Default Checksum Type: none

     Authentication Mode: all

          Root Directory: /ifs/zone1/cdh

         WebHDFS Enabled: Yes

           Ambari Server: -

         Ambari Namenode: -

             Odp Version: -

    Data Transfer Cipher: none

Ambari Metrics Collector: -

 

1.5 ACL設定の変更

sdedge-1# isi auth settings acls modify --group-owner-inheritance=parent

 

1.6 HDFSユーザとグループの作成

ADやLDAPがない環境では、IsilonおよびCDHのLinuxに同じUID、GIDを持つユーザとグループを作成する必要がありますが、ローカルユーザを簡単に作成するためにDellEMCではIsilon Hadoop toolsを用意しています。Isilon Hadoop toolsの詳細についてはGitHub(https://github.com/isilon/isilon_hadoop_tools/)を参照ください。

sdedge-1# mkdir -p /ifs/zone1/cdh/scripts

sdedge-1# cd /ifs/zone1/cdh/scripts

sdedge-1# wget https://raw.githubusercontent.com/Isilon/isilon_hadoop_tools/master/isilon_create_users.sh --no-check-certificate

sdedge-1# wget https://raw.githubusercontent.com/Isilon/isilon_hadoop_tools/master/isilon_create_directories.sh --no-check-certificate

sdedge-1# chmod u+x *

 

ユーザの作成を実施します。CDHなのでdistはcdh、UIDとGIDの開始は501とし、zoneは作成したzone1-cdhとします。

sdedge-1# bash isilon_create_users.sh --dist cdh --startuid 501 --startgid 501 --zone zone1-cdh

 

ディレクトリの作成を実施します。CDHなのでdistはcdh、zoneはzone1-cdhとします。

sdedge-1# bash isilon_create_directories.sh --dist cdh --zone zone1-cdh

 

1.7 ユーザ、グループのコピー

Isilonで作成したユーザおよびグループをCDHのLinuxへコピーします。

まず、下記のファイルの中身をCDHのLinuxの/etc/passwdへ追記します。

sdedge-1# cat zone1-cdh.passwd

# use this file to add to the passwd file of your clients

hdfs:x:501:501:hadoop-svc-account:/home/hdfs:/bin/bash

mapred:x:502:502:hadoop-svc-account:/home/mapred:/bin/bash

yarn:x:503:503:hadoop-svc-account:/home/yarn:/bin/bash

HTTP:x:504:504:hadoop-svc-account:/home/HTTP:/bin/bash

hbase:x:505:505:hadoop-svc-account:/home/hbase:/bin/bash

hive:x:506:506:hadoop-svc-account:/home/hive:/bin/bash

impala:x:507:507:hadoop-svc-account:/home/impala:/bin/bash

hue:x:508:508:hadoop-svc-account:/home/hue:/bin/bash

cloudera-scm:x:509:509:hadoop-svc-account:/home/cloudera-scm:/bin/bash

accumulo:x:510:510:hadoop-svc-account:/home/accumulo:/bin/bash

flume:x:511:511:hadoop-svc-account:/home/flume:/bin/bash

httpfs:x:512:512:hadoop-svc-account:/home/httpfs:/bin/bash

apache:x:513:513:hadoop-svc-account:/home/apache:/bin/bash

kafka:x:514:514:hadoop-svc-account:/home/kafka:/bin/bash

kms:x:515:515:hadoop-svc-account:/home/kms:/bin/bash

keytrustee:x:516:516:hadoop-svc-account:/home/keytrustee:/bin/bash

kudu:x:517:517:hadoop-svc-account:/home/kudu:/bin/bash

llama:x:518:518:hadoop-svc-account:/home/llama:/bin/bash

oozie:x:519:519:hadoop-svc-account:/home/oozie:/bin/bash

solr:x:520:520:hadoop-svc-account:/home/solr:/bin/bash

spark:x:521:521:hadoop-svc-account:/home/spark:/bin/bash

sentry:x:522:522:hadoop-svc-account:/home/sentry:/bin/bash

sqoop:x:523:523:hadoop-svc-account:/home/sqoop:/bin/bash

sqoop2:x:524:524:hadoop-svc-account:/home/sqoop2:/bin/bash

zookeeper:x:525:525:hadoop-svc-account:/home/zookeeper:/bin/bash

anonymous:x:526:526:hadoop-svc-account:/home/anonymous:/bin/bash

cmjobuser:x:527:527:hadoop-svc-account:/home/cmjobuser:/bin/bash

admin:x:528:528:hadoop-svc-account:/home/admin:/bin/bash

 

続いて下記のファイルの中身をCDHのLinuxの/etc/groupへ追記します。

sdedge-1# cat zone1-cdh.group

# use this file to add to the group file of your clients

hdfs:x:501:

mapred:x:502:

yarn:x:503:

HTTP:x:504:

hbase:x:505:

impala:x:507:

hue:x:508:

cloudera-scm:x:509:

accumulo:x:510:

flume:x:511:

httpfs:x:512:

apache:x:513:

kafka:x:514:

kms:x:515:

keytrustee:x:516:

kudu:x:517:

llama:x:518:

oozie:x:519:

solr:x:520:

spark:x:521:

sentry:x:522:

zookeeper:x:525:

anonymous:x:526:

cmjobuser:x:527:

admin:x:528:

hadoop:x:529:hdfs,mapred,yarn,HTTP,hbase,

supergroup:x:530:hdfs,mapred,yarn,HTTP,hbase,

sqoop:x:523:sqoop2

sqoop2:x:524:sqoop

hive:x:506:impala

Isilonの設定は以上で終了です。次にClouderaのセットアップを実施します。

 

 

2. Clouderaのセットアップ

続いてclouderaのセットアップを実施します。今回、私のほうではCDH 5.14.1とOneFS 8.1.0.2で構築しました。IsilonとClouderaのバージョンに関しては下記を参照ください。

Product Compatibility Matrix for EMC Isilon(Cloudera)

Hadoop Distributions and Products Supported by OneFS

 

2.1 Cloudera Managerのインストール

はじめにインストーラをダウンロードします。なお、現時点での最新版は5.14.1となります。

[root@cdh ~]# wget http://archive.cloudera.com/cm5/installer/5.14.1/cloudera-manager-installer.bin

 

ダウンロードしたインストーラに実行権限を付与して実行します。

setup1.png

 

ClouderaおよびOracle(Java)のライセンス規約が表示されますので同意する場合はNextで進んでいきます。

JDKからインストールが始まり、次にCloudera Manager Serverのインストールとなります。

setup2.png

 

以下の画面が表示されたらインストール完了となります。

setup3.png


インストール後にCloudera Managerが起動しているか確認します。

[root@cdh ~]# systemctl status cloudera-scm-server.service

 

2.2 CDHのセットアップ

Cloudera Manager(GUI)にアクセスします。

http://<IPアドレスもしくはホスト名>:7180、ユーザ名/パスワードはadmin/adminでログインします。

Cloudera_Login.png


バージョンの選択画面が表示されますので適切なものを選択します。(私のほうではEnterpriseの評価版を選択しました。)

Cloudera_Select_Enterprise.png

 

CDHをインストールするホストを検索します。複数ホストを検索する場合はホスト名を改行して入力もしくはパターンマッチングで登録できます。

Install1.png

 

検出したホストに対してCDHをインストールする場合はチェックボックスをチェックします。

Install2.png

 

エージェントのインストールが開始されます。

Install3.png

 

続いてParcelのインストールが開始されます。

Install4.png

 

インストール完了後、ホストの正常性をチェックします。エラーが出ている場合は指示に従って修正後に正常性チェックを再実行します。

Install5.png

 

インストールするサービスを選択します。今回はカスタムサービスを選択します。

Install51.png

 

使用するサービスをチェックしていきます。中段あたりにIsilonという名前のサービスがありますので選択します。また、IsilonがHDFSの役割を司るのでHDFSのサービスのチェックは外します。(インストールしません)

Install52.png

 

各サービスをどのホストに割り当てるか選択していきます。今回はLinuxマシンが1台だけですので全てのサービスを1台のホストに割り当てていきます。

Install6.png

 

各サービスで使用するデータベースを選択します。今回は組み込みのデータベース(PostgreSQL)を選択しました。

Install_DB.png

 

Isilonに必要な項目を入力していきます。

Default File System URI    hdfs://sc.isilonian.local:8020

WebHDFS URL                 http://sc.isilonian.local:8082/webhdfs/v1

Install7.png

 

各サービスがインストールされ開始されます。

Install8.png

 

以上で、セットアップ完了となります。万が一、インストール中にエラーが出た場合は殆どがネットワークの問題(名前解決)か、CPU、メモリ、ディスク容量などリソースが足りていなものと思われます。

Install9.png

 

 

3. インストール後の確認

今回のように1台で構築した際には幾つかのアラームが出ていると思いますので、内容を確認して沈静化(Suppress)します。

CM_dashboard.png

 

セットアップ直後の段階では、Isilonの所を見るとスパナマークが必ず2つ表示されます。内容は下記の画面キャプチャとなりますが、HDFSとしてIsilonを用いる際にはHDFS Trash(ゴミ箱機能)は使わずIsilonのスナップショットで対応しますので、これらは無効にして問題ありません。

Isilon_Use_Trash.png

 

以上でセットアップは完了となります。

CM_dashboad2.png

 

 

4. 動作確認

最後に簡単にHBaseを使って動作確認を実施したいと思います。HBaseでテーブルを作成するとHDFSでIsilon側にファイルとして作成されるのが確認できます。

 

Isilonianテーブルの作成

hbase(main):001:0> create 'Isilonian','hoge1','hoge2'

0 row(s) in 1.3990 seconds


=> Hbase::Table - Isilonian

hbase(main):002:0> list

TABLE

Isilonian

1 row(s) in 0.0210 seconds


=> ["Isilonian"]

 

hdfsコマンドで確認

[root@cdh ~]# hdfs dfs -ls /hbase/data/default

Found 1 items

drwxr-xr-x   - hbase hbase          0 2018-04-02 23:34 /hbase/data/default/Isilonian

 

Isilon側から確認

sdedge-1# ls -l /ifs/zone1/cdh/hbase/data/default

total 2

drwxr-xr-x    5 505  505  100 Apr  2 23:34 Isilonian

 

 

おわりに

いかがでしたでしょうか?Isilonではあればコンピューティングとデータを分離することができマルチプロトコルでアクセスができることがお解り頂けたかと思います。また、Cloudera Managerなどの各ディストリビューションの管理ツールとも統合されていますし、Cloudera、Hortonworks(Pivotal、IBM)等の主要ディストリビューションとの互換性情報やセットアップガイド、ホワイトペーパやHadoop用のユーザ、グループを迅速にセットアップするためのツール(Isilon Hadoop tools)を提供していますので企業でのHadoopの導入や運用のに対する工数を低減することができます。なお、最新のOneFSではCloudera Navigatorとの統合が出来ており、今後も各ディストリビューションと更に連携を強化していきますので、その辺につきましても本ブログでご紹介していきたいと思います。

 

 

参考情報

互換性情報など

Product Compatibility Matrix for EMC Isilon(Cloudera)

Hadoop Distributions and Products Supported by OneFS

Isilon Hadoop tools

Isilon Hadoop tools

導入ガイド(Cloudera)

EMC ISILON ONEFS WITH CLOUDERA HADOOP INSTALLATION GUIDE

EMC ISILON ONEFS WITH HADOOP AND CLOUDERA FOR KERBEROS INSTALLATION GUIDE

ベストプラクティスガイド

EMC ISILON BEST PRACTICES GUIDE FOR HADOOP DATA STORAGE

Isilon Info Hub(IsilonとHadoopに関する様々な情報)

Using Hadoop with Isilon - Isilon Info Hub

その他

ビッグデータにEMC ISILONスケールアウトNASを選ぶ理由

Hadoop分析にDellEMC ISILONを選ぶ主な理由

EMC ISILONスケールアウトNAS上のHadoop

HADOOP分析向けにDELL EMC ISILONベースのスケールアウトデータレイクストレージを導入する主な理由

EMC ISILON SCALE-OUT NAS FOR IN-PLACE HADOOP DATA ANALYTICS(日本語)

DELL EMC ISILON & CLOUDERA ENTERPRISE を使用したHADOOPソリューション

Dell EMC PowerEdgeサーバとスケールアウト NAS “Dell EMC Isilon” によるデータレイクソリューション



バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

安井 謙治

Dell EMC Unstructured Data Solutions

UDS事業本部 SE

なんだかんだでIsilonianTechも始めて4ヶ月で第6回になりましたが、今回はIsilonとElastic Stackについてご紹介します。

通常ですと、Elastic Stackというキーワードの際は、Isilonはデータレイク基盤としてデータを貯める側になるのですが、今回はIsilonのsyslogを解析するための基盤をELK(Elasticsearch, Logstash, Kibana)で構築してみようという内容です。

(データレイクを期待されたかたは、ごめんなさい。UDS事業本部の営業/SEでご説明に伺います。。)

 

ISLN_Kibana.png

 

 

Elastic Stackについては改めてご説明することは無いと思いますが、大まかな流れとしては、LogstashでIsilonのsyslogを取り込みElasticsearchに格納してKibanaで可視化します。

今回は、テストするにあたり下記の環境を用意しました。最低限、ELK用にLinuxを1台とIsilonクラスタを準備します。Isilonはシミュレータや以前の連載でご紹介したIsilonSD Edgeでも問題ございません。

 

env.png

           Kibana、Elasticsearch、Logstashのロゴは良い感じのデザインですね(https://www.elastic.co/brand

 

 

 

 

Isilon側の設定

Isilon側の設定としてLogstashにsyslogを飛ばす設定が必要になりますので、先ずはGUIもしくは下記コマンドでconfigに関するauditとsyslogを有効にします。

sdedge-1# isi audit settings global modify --config-auditing-enabled=true

sdedge-1# isi audit settings global modify --config-syslog-enabled=true

sdedge-1# isi audit settings global view

Protocol Auditing Enabled: No

            Audited Zones: -

          CEE Server URIs: -

                 Hostname: -

  Config Auditing Enabled: Yes

    Config Syslog Enabled: Yes

 

次に、syslog.confを編集していきますが、/etc配下に存在しているsyslog.confは直接編集しないでください。Isilonはクラスタ型のストレージなので、/etc/mcp/templates/syslog.confを編集することによって自動的に各ノードの/etc/syslog.confが変更されます。なお、syslog.confは事前にバックアップを取得してから編集します。

sdedge-1# cp /etc/mcp/templates/syslog.conf /etc/mcp/templates/syslog.conf.bkup

sdedge-1# vi /etc/mcp/templates/syslog.conf

!audit_config

*.*                                             /var/log/audit_config.log

*.*                                             @cent7.isilon.local

!audit_protocol

*.*                                             /var/log/audit_protocol.log

*.*                                             @cent7.isilon.local

 

次に、syslogのポート番号を変更するために/etc/servicesを編集します。なお、/etc/servicesはmcpに存在しないため各ノードで編集しますが、こちらもバックアップしてからの編集を推奨いたします。今回、ポート番号は8514としました。

sdedge-1# vi /etc/services

~~~~

syslog          8514/udp

 

syslogdを再起動します。なお、isi_で始まるコマンドはサポート用のコマンドとなり影響範囲も大きいので、くれぐれもご利用の際はご注意ください。

sdedge-1# isi_for_array "killall -HUP syslogd"

 

以上でIsilonの設定は終了です。

 

 

 

ELK(Elasticsearch, Logstash, Kibana)の準備

続いて用意したLinuxにElasticsearch、Logstash、Kibanaをセットアップしていきます。なお、Elasticsearch、LogstashにはJava8が必要ですので予めJavaをインストールしておく必要があります。

インストールに関しては、yumリポジトリを設定されても良いですしwgetやcurl等でダウンロードしてからインストールでも構いません。

 

Elasticsearchのセットアップ

私のほうでは、下記のとおりcurlを使ってelasticsearchのrpm(現時点での最新版は6.2.2でした)をダウンロードしてインストールしました。

 

1. Elasticsearchのインストール

[root@cent7 ~]# curl -k -L -O "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.rpm"

[root@cent7 ~]# rpm -i elasticsearch-6.2.2.rpm

 

2. elasticsearch.ymlの編集

/etc/elasticsearch配下のelasticsearch.ymlを編集することによって、クラスタ名、ノード名、ポート番号など変更できますが、今回の構成では、elasticsearch.ymlの編集は不要です。

 

3. Elasticsearchの起動

[root@cent7 ~]# systemctl enable elasticsearch.service

[root@cent7 ~]# systemctl start elasticsearch.service

 

 

Logstashのセットアップ

次に、Logstashのセットアップを実施します。

 

1. Logstashのインストール

[root@cent7 ~]# curl -k -L -O "https://artifacts.elastic.co/downloads/logstash/logstash-6.2.2.rpm"

[root@cent7 ~]# rpm -i logstash-6.2.2.rpm

 

2. logstash.confの作成

インストールディレクトリのconf.d配下にlogstash.confを作成します。(一般的には/etc/logstash/conf.d/logstash.confです)

Logstashはデータを整形できますが動作確認がメインですので今回はinputとoutputのみでfilterは省略します。格納先はElasticsearchを設定します。

[root@cent7 ~]# vi /etc/logstash/conf.d/logstash.conf

~~~~~~

input {

  tcp {

    port => 8514

    type => syslog

  }

  udp {

    port => 8514

    type => syslog

  }

}


output {

  elasticsearch{

    hosts => ["cent7.isilon.local:9200"]

  }

  stdout{

    codec => rubydebug

  }

}

~~~~~

 

3. Logstashの起動

[root@cent7 ~]# systemctl enable logstash.service

[root@cent7 ~]# systemctl start logstash.service

 

 

Kibanaのセットアップ

 

1. Kibanaのインストール

[root@cent7 ~]# curl -k -L -O "https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-x86_64.rpm"

[root@cent7 ~]# rpm -i kibana-6.2.2-x86_64.rpm

 

2. kibana.ymlの編集

[root@cent7 ~]# vi /etc/kibana/kibana.yml

~~~~~

elasticsearch.url: "http://cent7.isilon.local:9200"

~~~~~

 

3. Kibanaの起動

[root@cent7 ~]# systemctl enable kibana.service

[root@cent7 ~]# systemctl start kibana.service

 

 

 

Kibanaからsyslogの可視化

 

1. Kibanaへのアクセス

ブラウザでKibanaをインストールしたホスト名の5601ポートにアクセスします。(今回の例では、http://cent7.isilon.local:5601/)

Kibana_dashboard.png

 

2. インデックスパターンの作成

画面左側の「Management」タブから「Index Patterns」を選択して[Index pattern]を入力します。

Kibana_index1.png

 

[Time Filter field name]フィールドから"@timestamp"を選択して「Create index pattern」を選択します。

Kibana_index2.png

 

 

2. ログの確認

画面左側の「Discover」を選択しログが表示されているか確認します。

Kibana_discover.png

 

 

 

いざ、実行

無事にIsilonのsyslogが確認できたら、Isilonからのsyslogをタイムリーに拾えるかテストします。

 

1. Isilonからテストアラートの発行

Isilonからテストアラートを飛ばして、正常に表示されるか確認します。OneFS web administration interface(Web UI)から実行する場合は「Cluster Management」、「Events and Alerts」と辿っていき「Send Test Alert」の[Test Message:]フィールドに文字列を入力して「Send Test Alert」をクリックします。

OneFS_alert.png

 

2. Kibanaから確認

テストアラートが受け取れているかKibanaから確認します。IPアドレス部分はマスク(モザイク処理)しておりますが"host:"フィールドはIsilonクラスタのIPアドレス、"remote_addr:"フィールドは、テストアラートを実行したクライアントPC(Web UIにアクセスしているマシン)のIPアドレスが表示されます。また、"message"フィールドに、入力した文字列(下記の例では、"hoge 1"、"hoge 2"、"hoge hoge"と3回アラートを発行してみました。)が表示されることが確認できます。

Kibana_OneFS_alert.png

 

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

安井 謙治

Dell EMC Unstructured Data Solutions

UDS事業本部 SE

今回はWindows PowerShellのコマンドレットであるIsilon-POSHについてご紹介します。

社内インフラの運用を行うにあたり、多くのお客様はWindows PowerShellを用いてシステムの管理や自動化をおこなっていると思います。その中で、ファイルサーバや分析基盤としてIsilonをご利用頂いている場合、他のシステム同様にPowerShellで管理したいというニーズが出て来ると思いますが、Isilon-POSHを使うとIsilonの管理をPowerShellで実行できるようになります。

POSH.png

                                 {code}には多くのプロジェクトがあり上記のようにプロジェクトを検索できます

 

 

Isilon-POSHのセットアップ

Isilon-POSHを実行するにあたり必要な要件は下記となります。

・Powershell 3.0以降

・Isilon OneFS 7.1以降

 

Windows Server 2012やWindows 8以降であれば既にPowerShell 3.0がインストールされてますのでIsilon-POSHさえインポートすれば直ぐに実行可能です。Isilon-POSHはGitHubに公開されていますのでGitHubからダウンロードします。(ダウンロードはこちら

ダウンロードすると「IsilonPlatform」と「SSLValidation」という2つのモジュール(フォルダ)がありますのでPowerShellのModules配下(一般的には、C:\Windows\System32\WindowsPowerShell\v1.0\Modules)にコピーします。コピー終了後、PowerShellを起動します。

 

IsilonPlatformモジュールのインポート

Import-ModuleでIsilonPlatformを指定してモジュールをインポートします。

PS C:\> Import-Module IsilonPlatform

 

特にエラーが表示されなければインポートは成功ですが、Get-Moduleで確認してみます。(赤字のように表示されていれば成功です。)

PS C:\> Get-Module


ModuleType Version    Name                                ExportedCommands

---------- -------    ----                                ----------------

Script     8.0.6      IsilonPlatform                      {Get-isiAntivirusPolicies, Get-isiAntivirusPolicy, Get-isiAntivirusQuarantine, Get-isiAntivirusReportsScan...}

Manifest   3.0.0.0    Microsoft.PowerShell.Host           {Start-Transcript, Stop-Transcript}

Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}

Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}

Script     1.1        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlineKeyHandler...}

 

なお、Isilonで自己署名証明書を使用している場合はSSLValidationをインポートし無効にする必要があります。

PS C:\> Import-Module SSLValidation

PS C:\> Disable-SSLValidation

 

 

Isilonに接続の前に…(コマンドレットやヘルプの使いかた)

Isilonに接続する前に、どのようなコマンドレットがあるかや構文のヘルプの表示方法について説明します。

Isilon-POSHのコマンドレットは、大きく下記の4つのカテゴリにわかれています。(厳密には下記4つ以外に、Send-isiAPIというRESTを投げるコマンドレットがあります。RESTについては別の回でご紹介いたします。)

・Get-isiXXXXX

・Set-isiXXXXX

・New-isiXXXXX

・Remove-isiXXXXX

 

コマンドレットは1000以上ありますので、さすがに全部覚えるのは不可能です。Isilon-POSHも一般的なコマンドレットの命名規則と同様、"動詞-名詞"で構成されていますので、先ずは接頭の意味を理解頂ければ問題ありません。現在のクラスタの状態やレプリケーションの状態を表示する場合にはGet、設定の変更はSet、新しく共有やスナップショットを作成する場合はNew、スナップショットなどを削除する場合はRemoveとなります。あとは-isiと繋いでいけばタブ補完も使えますので使いたいコマンドレットに辿り着くと思いますが、わからない場合はGet-Commandを使います。下記は状態表示(Get-isi)の一覧を出力する例です。

PS C:\> Get-Command Get-isi*


CommandType     Name                                   Version    Source

-----------     ----                                   -------    ------

Alias           Get-isiAuditSettingsGlobal             8.0.6      IsilonPlatform

Alias           Get-isiAuthProviderAds                 8.0.6      IsilonPlatform

Alias           Get-isiAuthProviderAdsDomain           8.0.6      IsilonPlatform

Alias           Get-isiAuthProviderAdsDomains          8.0.6      IsilonPlatform

Alias           Get-isiAuthProviderKrb5                8.0.6      IsilonPlatform

Alias           Get-isiAuthProviderLdap                8.0.6      IsilonPlatform

Alias           Get-isiAuthProviderNis                 8.0.6      IsilonPlatform

Alias           Get-isiAuthProvidersAds                8.0.6      IsilonPlatform

Alias           Get-isiAuthProvidersKrb5               8.0.6      IsilonPlatform

Alias           Get-isiAuthProvidersLdap               8.0.6      IsilonPlatform

Alias           Get-isiAuthProvidersNis                8.0.6      IsilonPlatform

Alias           Get-isiAuthProvidersSummary            8.0.6      IsilonPlatform

Alias           Get-isiClusterConfig                   8.0.6      IsilonPlatform

Alias           Get-isiClusterExternalIPs              8.0.6      IsilonPlatform

Alias           Get-isiClusterIdentity                 8.0.6      IsilonPlatform

Alias           Get-isiClusterTime                     8.0.6      IsilonPlatform

Alias           Get-isiFilepoolDefaultPolicy           8.0.6      IsilonPlatform

~~~~~~~~省略~~~~~~~~

 

該当のコマンドレットが見つかったら次に構文を確認します。構文の確認にはGet-Helpを使います。例えば、新規スナップショットを作成する場合の構文を確認するには下記のとおり入力します。

PS C:\> Get-Help -Detailed New-isiSnapshots


名前

    New-isiSnapshots


概要

    New Snapshots



構文

    New-isiSnapshots [[-alias] <String>] [[-expires] <Int32>] [[-name] <String>] [-path] <String> [[-Cluster] <String>] [<CommonParameters>]



説明

    Create a new snapshot.



パラメーター

    -alias <String>

        Alias name to create for this snapshot. If null, remove any alias.


    -expires <Int32>

        The Unix Epoch time the snapshot will expire and be eligible for automatic deletion.


    -name <String>

        The user or system supplied snapshot name. This will be null for snapshots pending delete.


    -path <String>

        The /ifs path snapshotted.


    -Cluster <String>

        Name of Isilon Cluster

 

コマンドレットによっては引数が必要になる場合や引数を省略できる場合がありますので、今度はGet-Help -Fullを使って確認します。下記赤字のように"必須 true"となっている引数は入力しないとエラーとなります。

PS C:\> Get-Help -Full New-isiSnapshots


名前

    New-isiSnapshots


概要

    New Snapshots


構文

    New-isiSnapshots [[-alias] <String>] [[-expires] <Int32>] [[-name] <String>] [-path] <String> [[-Cluster] <String>] [<CommonParameters>]



説明

    Create a new snapshot.



パラメーター

    -alias <String>

        Alias name to create for this snapshot. If null, remove any alias.


        必須                         false

        位置                         1

        既定値

        パイプライン入力を許可する   true (ByPropertyName)

        ワイルドカード文字を許可する false


    -expires <Int32>

        The Unix Epoch time the snapshot will expire and be eligible for automatic deletion.


        必須                         false

        位置                         2

        既定値                       0

        パイプライン入力を許可する   true (ByPropertyName)

        ワイルドカード文字を許可する false


    -name <String>

        The user or system supplied snapshot name. This will be null for snapshots pending delete.


        必須                         false

        位置                         3

        既定値

        パイプライン入力を許可する   true (ByPropertyName)

        ワイルドカード文字を許可する false


    -path <String>

        The /ifs path snapshotted.


        必須                         true

        位置                         4

        既定値

        パイプライン入力を許可する   true (ByPropertyName)

        ワイルドカード文字を許可する false


    -Cluster <String>

        Name of Isilon Cluster


        必須                         false

        位置                         5

        既定値

        パイプライン入力を許可する   true (ByPropertyName)

        ワイルドカード文字を許可する false

 

Isilon-POSHの実行

少し前置きが長くなりましたが実際にIsilon-POSHを実行していきます。

 

Isilonへログイン

先ずはIsilonへのログインが必要となりますので、New-isiSessionを実行します。ログインアカウントおよびパスワードを聞かれますので入力します。

PS C:\> New-isiSession -ComputerName <Isilonクラスタのホスト名もしくはIPアドレス>

 

ハードウェア構成の確認

LNN1のハードウェア構成を確認するには、Get-isiClusterNodeHardware -id 1を実行します。

PS C:\> Get-isiClusterNodeHardware -id 1



chassis          : ISI12 (Isilon (CIDesigns) 12-Bay Chassis)

chassis_code     : Unknown

chassis_count    : 1 (Single-Chassis System)

class            : storage

configuration_id : 851-0086-81

cpu              : GenuineIntel (2.33GHz, stepping 0x0001067a)

disk_controller  : LSI1068E-28 (LSI SAS1068E + Vitesse 28-port SAS Controller) (28 ports)

disk_expander    : VIT7157 (Vitesse 7157 Disk Expander)

family_code      : Unknown

flash_drive      : None (No physical dongle supported) ((null))

generation_code  : Unknown

hwgen            : RacerX (RacerX Hardware)

id               : 1

imb_version      : Board Version 0x20f

infiniband       : ISI25208 (Isilon MT25208-based IB Card)

lcd_version      : NoriVFD (Noritake VFD)

lnn              : 1

motherboard      : SupMicX7DBU (SuperMicro X7DBU Motherboard)

net_interfaces   : em*4,ib*2 (4x Intel, 2x IB)

nvram            : MT25208 (Mellanox 25208 based Card) (492MB card) (size 515899392B)

powersupplies    : {PS1 (type=ColdWatt, fw=2.1), PS2 (type=ColdWatt, fw=2.1)}

processor        : Dual-proc, Quad-core

product          : IQ 10000x-ssd

ram              : 17143812096

serial_number    : XXXXXXXXXX

series           : x_series

storage_class    : storage

 

バッテリ状態の確認

同様にバッテリの状態を確認するにはGet-isiClusterNodeStatusBatterystatus -id 1を実行します。

PS C:\> Get-isiClusterNodeStatusBatterystatus -id 1



id              : 1

last_test_time1 : Mon Dec 25 17:38:16 2017

last_test_time2 : Mon Dec 25 20:18:21 2017

lnn             : 1

next_test_time1 : Fri Feb 23 16:38:16 2018

next_test_time2 : Fri Feb 23 20:18:21 2018

present         : True

result1         : passed

result2         : passed

status1         : Good (10)

status2         : Good (10)

supported       : True

 

SMB共有の作成

New-isiSmbSharesでSMB共有を作成します。共有名をposhshare、共有パスを/ifs/dataとする場合は下記となります。

PS C:\> New-isiSmbShares -name poshshare -path '/ifs/data'


id

--

poshshare

 

SMB共有の確認

SMB共有を表示する場合はGet-isiSmbSharesを実行します。

PS C:\> Get-isiSmbShares



access_based_enumeration           : False

access_based_enumeration_root_only : False

allow_delete_readonly              : False

allow_execute_always               : False

allow_variable_expansion           : False

auto_create_directory              : False

browsable                          : True

change_notify                      : norecurse

create_permissions                 : default acl

csc_policy                         : manual

description                        :

directory_create_mask              : 448

directory_create_mode              : 0

file_create_mask                   : 448

file_create_mode                   : 64

hide_dot_files                     : False

host_acl                           : {}

id                                 : poshshare

impersonate_guest                  : never

impersonate_user                   :

inheritable_path_acl               : False

mangle_byte_start                  : 60672

mangle_map                         : {0x01-0x1F:-1, 0x22:-1, 0x2A:-1, 0x3A:-1...}

name                               : poshshare

ntfs_acl_support                   : True

oplocks                            : True

path                               : /ifs/data

permissions                        : {@{permission=read; permission_type=allow; trustee=}}

run_as_root                        : {}

strict_flush                       : True

strict_locking                     : False

zid                                : 1

 

スナップショットの作成

スナップショットを作成する場合は、New-isiSnapshotsを実行します。Get-Helpで説明しましたとおり引数が必須なのは-pathだけですが、スナップショットの名前が機械的な名前(例えばs46653など)になりますので-nameでスナップショット名を指定します。

PS C:\> New-isiSnapshots -name poshsnap -path /ifs/data



created        : 1518082086

expires        :

has_locks      : False

id             : 46651

name           : poshsnap

path           : /ifs/data

pct_filesystem : 6.75642164438273E-09

pct_reserve    : 0.0

schedule       :

shadow_bytes   : 0

size           : 2048

state          : active

target_id      :

target_name    :

 

以上、Isilon-POSHの使い方についてご紹介いたしました。

動作してしまえば、後はGet-Helpを使いながら色々なコマンドレットを試して頂けると思います。

 

 

さいごに

アプリケーションやWindows OS、vSphereをPowerShellで管理している場合や、Isilonクラスタが複数ある環境ではIsilon-POSHは非常に強力なツールであることをご理解頂けたかと思います。Isilon-POSHは強力が故に殆ど(99%!?)のAPIをカバーしているため特にSetやRemoveを実行される場合はご注意ください。本番環境で実行される前に検証機やIsilonSD Edge、OneFSシミュレータ等で事前にテストすることを強く推奨いたします。なお、Isilon-POSHはオープンソースによるプロジェクトですのでEMCのサポートもございませんので予めご了承ください。

 

 

参考情報

Isilon-POSH GitHub https://github.com/vchrisb/Isilon-POSH

{code} https://thecodeteam.com/

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

安井 謙治

Dell EMC Unstructured Data Solutions

UDS事業本部 SE

今回はオープンソースから少し離れましてIsilonSD Edgeをご紹介します。

先に他の情報をお伝えしようと思ったのですが、昨今のSoftware Definedの流れでIsilonSD Edgeに関するご相談が非常に多く、特に昨年はIsilonSD Edgeを採用いただくケースが増えました。また、商用環境でも大規模にご採用頂いた事例も出てきたのと、先日新しいバージョンがリリースされたため、このタイミングでご紹介しようと思います。

SDEdge_Logo.jpg

 

IsilonSD Edge

IsilonSD EdgeはSoftware Defined Storage型のIsilonです。vSphere上で動作しますので様々なハードウェア上でIsilon(OneFS)を動かすことができvSphereのvSANやVMFSデータストア上に展開ができるのが特徴です。なお、昨年末にはPowerEdge VRTXとIsilonSD Edgeのパッケージ化ソリューションも発表いたしました。https://japan.emc.com/about/news/press/japan/2017/20171225-1.htm

 

IsilonSD Edgeは、IsilonのデータレイクのビジョンであるEdge to Core to CloudのEdge部分を担う形となり、ユースケースとしては企業の拠点向けファイルサーバやIoTデータのエッジとして設置しデータセンタにあるCoreに対してデータのレプリケーションやアーカイブを行うことが可能です。もちろん、SD Edgeから直接クラウドストレージへアーカイブも出来ますので小さなフットプリントで大容量のハイブリッドクラウド型のファイルサーバ構築することもできます。また、複数のサービス基盤でIsilonをご利用頂いている場合は、OneFSも複数のバージョンで運用されていることが多くテストや開発用に複数OneFSを準備する必要があります。また、新しいOneFSがリリースされた場合に新機能のテストを行う必要がありますが、これらの問題もIsilonSD EdgeであればIsilonクラスタの作成やアップデートまたは削除を簡単に行えますのでサンドボックスとしてご利用頂くのにも最適です。

OneFS_everywhere.png

                                       OneFS everywhere!(私が勝手に呼んでます…)

 

 

 

IsilonSD Edgeには、有償版と無償版がありますので、先ずは無償版で気軽に試して頂くことも可能です。本番環境やサービス基盤などでご利用される場合はサポートの観点から有償版でのご提供となります。

IsilonSD Edgeには"IsilonSD Edge"と"IsilonSD Edge Flex"の2つ動作モードがあります。リリース当初はIsilonSD Edgeの動作モードだけでしたが、昨年4月のManagement Server 1.0.2およびOneFS 8.1リリースのタイミングで新たな動作モードとしてIsilonSD Edge Flexをサポートしました。IsilonSD EdgeとIsilonSD Edge Flexの違いは下記となります。

・IsilonSD Edge…物理アプライアンスのIsilon同様、Isilonでデータ保護を行う方式。

・IsilonSD Edge Flex…vSANや共有ストレージのVMFSなど、柔軟な構成が可能。データ保護は共有ストレージのRAIDに依存。

 

IsilonSD EdgeとIsilonSD Edge Flexの違い、ならびに無償版との比較は下記となります。

IsilonSD EdgeIsilonSD Edge Flex無償版
OneFSバージョンOneFS 8.1以降OneFS 8.1以降OneFS 8.0以降
システム要件

3 ~ 6 ESXホスト

データドライブ(4 or 6 or 12から選択)

ブートドライブ 1 SSD

ジャーナル用ドライブ 1 SSD

1 ~ 6 ESXホスト

単一データストア、 vSAN対応

1 ~ 6 ESXホスト

単一データストア、 vSAN対応

使用可能なオプション機能全ての機能全ての機能CloudPools、SmartLockを除く全ての機能
VM数3 - 6 VM(1ESXホストあたり1VM)3 - 6 VM3 - 6 VM
最大物理容量36 TB36 TB36 TB
ライセンス費用有償有償無償
サポート

EMCサポート、ESRS対応

EMCサポート、ESRS対応

データ保護に関しては各ストレージに依存

コミュニティサポート

 

 

なお、今回ご紹介するのはIsilonSD Edge Flexとなります。IsilonSD Edgeに関しましては過去の記事を参照ください。

https://news.mynavi.jp/article/emcsds-7/

https://news.mynavi.jp/article/emcsds-8/

 

IsilonSD Edgeで使用可能なオプション機能については、無償版でもCloudPools、SmartLockを除いて全ての機能がお使い頂けます。詳細につきましては下記となります。

機能有償版無償版
NFS、SMB、HTTP、FTP、HDFS、SwiftYesYes
CloudPoolsYesNo
InsightIQYesYes
SyncIQYesYes
SmartLockYesNo
SmartConnect AdvancedYesYes
SmartPoolsYesYes
SmartDedupeYesYes
SmartQuotaYesYes
SnapShotIQYesYes
Two-way NDMP backupNoNo
Three-way NDMP backupYesYes

 

ちなみに、以前からIsilonSD Edgeをご存知のかた向けの情報ですが、IsilonSD Management Server 1.0.3より主に以下の点がアップデートされました。

・IsilonSD Edge Flexで6ノード構成をサポート

・IsilonSD Management ServerのGUIが独立

・4TBの仮想ディスクのサポート


IsilonSD Management Server 1.0.3からはIsilonSD Edge Flexで6ノードまで構成可能です。また、IsilonSD Management Server 1.0.2まではvCenter Serverのプラグインとして完全に統合されておりクラスタの作成や管理はvSphere Web Client経由でのみ実行できましたが、1.0.3からはGUIが独立し管理性が向上しました。(従来どおりvCenter ServerのプラグインとしてvSphere Web Clientから管理することもできます。)


今回はIsilonSD Edge Flexでインストールをしていきますが、最低1台のESXサーバとvCenter Serverをご用意ください。vSphereはEssentials Kitでも構いませんが、ハージョンは6.0以降をご利用ください。

1台で構築する際に必要なリソースとしては、IsilonSD Management ServerおよびOneFSのノード台数分の仮想マシンを処理するリソースが必要ですのでIsilon 3ノード構成であれば最低8vCPU、24GBメモリ以上必要な計算となります。(計算にあたっては下記の必要リソースをもとに算出ください。)なお、ドライブは必要な容量に応じてご用意ください。

 

IsilonSD Management Serverに必要なリソース

コンポーネント要件
vCPU2 vCPU
RAM4 GB
ドライブ容量50 GB

 

OneFSの仮想マシンに必要なりソース(1ノードあたり)

コンポーネント要件
vCPU仮想マシンあたり最小 2 vCPU、最大 16 vCPU
RAM仮想マシンあたり最小 6 GB、最大 256 GB
ドライブタイプSATA、SAS、SSD

 

その他、事前に必要な準備としてはIsilonのフロントエンドネットワークとバックエンドネットワークとして、それぞれのvSwitchを予め構成しておいてください。

 

 

IsilonSD Edgeのセットアップ

セットアップにあたりIsilonSD Edgeの作成や管理を行うためのIsilonSD Management ServerとIsilonSD Edge用のOneFSのイメージファイルが必要になりますので右のリンクからダウンロードします。IsilonSD Edge Download

ダウンロードしたEMC_IsilonSD_Edge.zipを展開します。zipファイルの中には9個ファイルがありますが、この中で今回使用するのは、IsilonSD Management ServerのOVA(EMC_IsilonSD_Edge_ms_1.0.3.ova)とIsilonSD Edge用のOneFSのOVA(EMC_IsilonSD_EDGE_OneFS_VM_8.1.0.2.ova)の2つとなります。その他のドキュメント類やInsightIQのOVAは必要に応じてご利用ください。

 

 

IsilonSD Management Serverのインストール

1. vCenter Web ClientからIsilonSD Management ServerのOVAをインポートします。

インポート後、IsilonSD Management Serverの仮想マシンの電源を入れます。起動するとウィザードが起動しますので、rootユーザ、administratorユーザのパスワードおよびネットワーク設定を入力していきます。

boot_ms.JPG.jpg

 

2. https://<IsilonSD Management ServerのIPアドレス>:9443/にアクセスします。

ユーザ名はadmin、パスワードはsunshineでログインします。ログイン後にパスワードを変更する旨、表示されますのでパスワードを変更します。

ms_login.png

3. vCenter Serverを登録します。

「vCenters」のタブを選択してManaged Virtual Infrastructure画面のところにある「+(プラス)」をクリックすると以下の画面が表示されますので登録するvCenter ServerのFQDNおよびvCenter Serverのユーザ名、パスワードを入力します。Custom NameはIsilonSD Management Server上での表示名ですので任意の名前で結構です。

reg_vc.png

 

以下の状態になればvCenter Serverの登録は完了です。もし、Pluginの表示がUnregister Pluginと表示されていない場合はクリックしてvCenter Serverの管理ユーザ名およびパスワードを入力してください。

reg_vc_after.png

4. 続いて「Licenses」のタブを見ていきます。

予め無償のライセンスが登録されていますので、無償版としてお使い頂く際には特にライセンスの登録は必要ありません。

licenses.png

5. 次に、使用するOneFSのイメージを登録していきます。ダウンロードした際に含まれているEMC_IsilonSD_EDGE_OneFS_VM_8.1.0.2.ovaをドラックアンドドロップしてUploadをクリックします。

reg_image.png

 

OneFSのイメージは複数登録することもできますので、必要に応じて他のイメージの登録を行います。今回、ダウンロードしたイメージとは別のバージョンを使いたい場合は、DellEMCのサポートサイトからIsilonSD Edge用のイメージをダウンロードしてください。

また、使用するOneFSイメージは、Isilonクラスタの作成時に選択できますが良く使うバージョンのイメージを予めデフォルトとして登録しておくことができます。

manage_image.png

これで、IsilonSD Management Serverの設定は終了です。

 

 

Isilonクラスタの作成

いよいよIsilonクラスタを作成していきます。Isilonクラスタの作成にあたりクラスタ名や、各ノードに必要なフロントおよびバックエンドネットワークのIPアドレス、SmartConnectのZone名やIPアドレスなど、物理アプライアンスでセットアップする際に入力する内容と同じものがクラスタ作成時に聞かれますので事前に準備しておきます。

 

1. IsilonSD Management Serverの「IsilonSD Clusters」タブから「+」をクリックします。

cluster_mgmt.png

 

 

2. ライセンスを選択して必要な情報を入力していきます。

create_before.png

Number of ESXi Hostsでは、何台のESXiホストを使用するかを選択します。ESXiホストの台数によって選択可能なIsilonのノード数が異なりますので下記を参考にしてください。簡単にお伝えするとIsilonSD Edge Flexで複数台のESXiを使用する際には同数のIsilonノード(仮想マシン)を配置する構成のみサポートとなります。

ESXiホストの台数選択可能なIsilonのノード数

Single Host(1台)

最小 3、最大 6

Multiple Hosts(最小2台、最大6台)

ESXiホストが2台の場合、4 or 6

ESXiホストが3台の場合、3 or 6

ESXiホストが4台の場合、4

ESXiホストが5台の場合、5

ESXiホストが6台の場合、6

 

上記、ESXiの台数の選択によって、Number of OneFS Virtual Nodesで選択できるノード数が変化しますので選択します。

Number of DatastoresではIsilonのノードをどのように配置するかを決めます。

・One per ESXi Host…全ノードを1つのデータストアに配置します。

・One per OneFS Virtual Node…ノード毎にデータストアをわけて配置します。

・One per Virtual Data Disk…ノードの1ドライブに対して1つのデータストアを割り当てます。

 

私のほうではPowerEdge R740xdという、そこそこスペックの良いマシンを用意できたので、1台のESXiホストに6台のIsilonノードを1つのVMFSに配置するように入力しました。また、クラスタの容量は1.5TBとし、各Isilonノードのメモリは16GBにしました。

create_cluster.png

全ての項目を入力後Nextをクリックして次に進みますが、IsilonSD EdgeFlexで設定した際はReminderが表示されますので内容を確認してCloseをクリックします。

 

3. 使用するESXiホストを選択します。

Number of ESXi Hostsで指定した台数分のESXiホストを選択してNextをクリックします。

create_step1.png

 

4. クラスタで使用するExternal Network Port Group(フロントエンドネットワーク)と、Internal Network Port Group(バックエンドネットワーク)のvSwitchを選択します。

create_step2.png

 

5. クラスタの名前、rootおよびadminのパスワード等を入力します。

create_step3.png

 

6. フロントエンドネットワークおよびバックエンドネットワーク、SmartConnectの情報を入力します。

create_step4.png

 

 

7. 最後に確認画面が表示されますので、入力した項目に間違いが無いかを確認しCreateをクリックします。

その後、この画面のままCreateボタンがProsessingに変わりバックエンドIsilonクラスタが作成されます。マシンのスペックにもよりますが10分程度で完了します。

create_after.png

 

Success: Create IsilonSD Clusterと表示されたら完成です。

 

8. 作成が終了したら「IsilonSD Clusters」タブがある画面の左側のペインにクラスタ名が表示されますのでクリックするとクラスタのサマリを確認することができます。

manage_summary.png

 

9. 「OneFS Virtual Nodes」では、ノードやドライブのSmartfailを行うことができます。

manage_onefsvm.png

 

10. vSphere Web Clientから確認すると下記のように仮想マシンがノード分存在し起動しているのがわかります。

vCenter_Dashboard.png

 

 

Isilonクラスタへのログイン

IsilonSD Edgeで作成したIsilonクラスタは物理アプライアンス同様、OneFS web administration interface(Web UI)から各種設定や管理が行えます。

 

https://<OneFSのexternal IPアドレス>:8080にアクセスします。

Isilon_login.png

いつもの見慣れた画面とは少し違い、動作モードがIsilonSD Edge Flexとなりますので上記画面のとおり黄枠で注意表示がされます。

 

Isilon_Dashboard.png


ライセンスについては、既に有効になっている状態ですので直ぐに各種機能をお使い頂くことができます。

license.png

 

 



参考情報

 

IsilonSD Edge Data Sheet http://www.emc.com/collateral/data-sheet/h14759-ds-isilonsd-edge.pdf

IsilonSD Edge download https://japan.emc.com/products-solutions/trial-software-download/isilonsd-edge.htm

SDSで支店・支社にエンタープライズNASを導入 - 前編 https://news.mynavi.jp/article/emcsds-7/

SDSで支店・支社にエンタープライズNASを導入 - 後編 https://news.mynavi.jp/article/emcsds-8/

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

 

安井 謙治

EMCジャパン株式会社

アイシロン事業本部 SE部

今回は運用で役立つツール、Isilon Data Insights Connectorについてご紹介します。

Isilon Data Insights Connectorは、ひとことで言うとIsilonの性能を可視化するツールでInfluxDB + Grafanaをベースに動作します。

Isilonでは標準ツールとしてInsightIQを提供しておりますので、一般的な用途(例えば、ファイルサーバ、データレイクなど社内の情報基盤用途)であれば、InsightIQで十分ですが、サービス基盤となるとストレージ以外のインフラやアプリケーションなど統合的に監視したいというニーズが出てくると思います。

Isilon Data Insights Connector(Grafana)であればIsilonに限らず統合的に監視できて、きめ細かなカスタマイズが出来ますので多くの監視に関するニーズを比較的簡単に満たすことが出来ます。

Isilon Data Insights ConnectorとInsightIQを比較した場合、それぞれの良さがありますので、その点についても解説いたします。

code_isilon.png

                                                            http://codedellemc.com/isilon

 

 

Isilon Data Insights Connector

Isilon Data Insights Connectorは、API経由で性能情報を取得するためのPythonスクリプトとGrafanaで使えるダッシュボードを提供します。

isi_data_insights_d.pyを実行するとデーモンプロセスとして動作し、OneFS API(RESTベースのPlatformAPI)経由で各メトリックを定期的に取得し結果をInfluxDBに格納します。なお、取得間隔はデフォルトでは30秒ですがコンフィグで変更可能です。

IDIC.JPG.jpg

                                        Isilon Data Insights Connector Cluster Detail画面

 

 

Isilon Data Insights Connectorインストール

インストールにあたりLinuxマシンを1台用意します。ハードウェア要件はありませんが、1CPU/メモリ4GB程度あると快適です。また、ディストリビューションの指定はありませんがCentOS7系(Python2.7)がおすすめです。

なお、Isilon Data Insights Connectorを実行するにあたりAPIを実行できる権限を持っているユーザがいればIsilon側の設定は特にありません。

 

 

下記ステップでGrafana、InfluxDB、Isilon Data Insights Connectorをインストールしていき、コンフィグ(isi_data_insights_d.cfg)を編集し実行する流れとなります。

 

1.gitパッケージをインストールします。

[root@cent ~]# yum -y install git

 

2.インストールにあたり任意のディレクトリに移動します。(私は/opt配下にインストールしました)

[root@cent ~]# cd /opt

 

3.GitHubからIsilon Data Insights Connectorをクローンします。

[root@cent ~]# git clone https://github.com/Isilon/isilon_data_insights_connector.git

 

4.pip実行のために下記2つのパッケージをインストールします。

[root@cent ~]# yum -y install epel-release python-pip

 

5.インストールしたディレクトリに移動しpip installを実行します。

[root@cent ~]# pip install -r requirements.txt

 

6.example_isi_data_insights_d.cfgをisi_data_insights_d.cfgという名前でコピーします。

[root@cent ~]# cp example_isi_data_insights_d.cfg isi_data_insights_d.cfg

 

7. isi_data_insights_d.cfgファイルを編集します。監視したいIsilonクラスタ名もしくはIPアドレスをclusters:(24行目あたりにあります)の後に入力します。複数のIsilonクラスタを登録する場合はスペースで区切って入力します。(例ではfs01.isilon.local、iq31.isilon.local、iq41.isilon.localの3つのクラスタを登録しています。

# Use the optional True or False on the end to specify whether the cluster's

# SSL certificate should be verified. If it is omitted then the default is

# False (i.e. don't verify SSL cert).

clusters:fs01.isilon.local iq31.isilon.local iq41.isilon.local

 

 

 

# Specifies the active list of stat groups to query, each stat group name

# specified here should have a corresponding section in the config file.

 

8. /etc/yum.repos.d/influxdb.repoファイルを作成します。

[influxdb]

name = InfluxDB Repository - RHEL \$releasever

baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable

enabled = 1

gpgcheck = 1

gpgkey = https://repos.influxdata.com/influxdb.key

 

9.influxdbをインストールします。

[root@cent ~]# yum install -y influxdb

[root@cent ~]# service influxdb start

 

10. /etc/yum.repos.d/grafana.repoファイルを作成します。

[grafana]

name=grafana

baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch

repo_gpgcheck=1

enabled=1

gpgcheck=1

gpgkey=https://packagecloud.io/gpg.keyhttps://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

 

11.influxdbをインストールします。

[root@cent ~]# yum install -y grafana

[root@cent ~]# service grafana-server start

 

 

Isilon Data Insights Connectorの起動

isi_data_insights_d.pyを実行します。登録したIsilonクラスタ毎にプロンプトが表示されますのでAPIを実行する権限のあるユーザおよびパスワード、SSL接続の有無を入力します。

[root@cent isilon_data_insights_connector]# ./isi_data_insights_d.py start

 

 

Please provide the username used to access fs01.isilon.local via PAPI: root

Password:

Verify SSL cert [y/n]: n

Configured fs01.isilon.local as version 7 cluster, using SDK isi_sdk_7_2.

Please provide the username used to access iq41.isilon.local via PAPI: root

Password:

Verify SSL cert [y/n]: n

Configured iq41.isilon.local as version 8 cluster, using SDK isi_sdk_8_0.

Please provide the username used to access iq31.isilon.local via PAPI: root

Password:

Verify SSL cert [y/n]: n

Configured iq31.isilon.local as version 8 cluster, using SDK isi_sdk_8_0.

Computing update intervals for stat group: cluster_cpu_stats.

Computing update intervals for stat group: cluster_network_traffic_stats.

Computing update intervals for stat group: cluster_client_activity_stats.

Computing update intervals for stat group: cluster_health_stats.

Computing update intervals for stat group: ifs_space_stats.

Computing update intervals for stat group: ifs_rate_stats.

Computing update intervals for stat group: node_load_stats.

Computing update intervals for stat group: node_disk_stats.

Computing update intervals for stat group: node_net_stats.

Computing update intervals for stat group: cluster_disk_rate_stats.

Computing update intervals for stat group: cluster_proto_stats.

Computing update intervals for stat group: cache_stats.

Computing update intervals for stat group: heat_total_stats.

Configured stat set:

        Clusters: [iq31, iq41, fs01]

        Update Interval: 300

        Stat Keys: set(['ifs.percent.free', 'ifs.bytes.free', 'ifs.bytes.used', 'ifs.bytes.avail', 'ifs.bytes.total', 'ifs.percent.avail', 'ifs.percent.used'])

Configured stat set:

        Clusters: [iq31, iq41, fs01]

        Update Interval: 30

        Stat Keys: set(['cluster.protostats.lsass_out.total', 'cluster.cpu.idle.avg', 'node.open.files', 'node.disk.iosched.queue.avg', 'node.disk.xfers.in.rate.avg', 'node.clientstats.connected.ftp', 'node.disk.bytes.out.rate.avg', 'cluster.net.ext.bytes.out.rate', 'node.clientstats.active.smb2', 'cluster.protostats.siq', 'cluster.protostats.ftp', 'cluster.protostats.irp.total', 'ifs.ops.out.rate', 'node.clientstats.connected.cifs', 'node.net.ext.bytes.in.rate', 'cluster.net.ext.packets.out.rate', 'node.net.int.errors.in.rate', 'node.ifs.heat.rename.total', 'node.net.ext.errors.in.rate', 'ifs.bytes.out.rate', 'node.disk.access.latency.avg', 'cluster.protostats.irp', 'node.load.5min', 'node.memory.used', 'cluster.protostats.nlm.total', 'node.clientstats.active.hdfs', 'node.clientstats.connected.nlm', 'node.net.int.errors.out.rate', 'cluster.protostats.nfs4.total', 'cluster.protostats.nlm', 'node.ifs.heat.read.total', 'node.clientstats.active.nlm', 'cluster.health', 'cluster.disk.bytes.out.rate', 'cluster.disk.bytes.in.rate', 'node.ifs.heat.link.total', 'cluster.protostats.papi.total', 'node.ifs.heat.setattr.total', 'cluster.protostats.smb2.total', 'cluster.protostats.jobd', 'cluster.net.ext.packets.in.rate', 'cluster.protostats.lsass_out', 'cluster.protostats.hdfs.total', 'node.clientstats.connected.hdfs', 'node.disk.xfer.size.out.avg', 'cluster.disk.xfers.in.rate', 'node.clientstats.active.nfs4', 'node.disk.busy.avg', 'node.clientstats.active.ftp', 'node.ifs.heat.deadlocked.total', 'cluster.protostats.nfs4', 'node.clientstats.connected.papi', 'node.ifs.cache', 'cluster.protostats.lsass_in.total', 'node.ifs.heat.lock.total', 'cluster.net.ext.errors.out.rate', 'node.clientstats.connected.siq', 'node.clientstats.active.lsass_out', 'node.ifs.heat.write.total', 'node.net.ext.bytes.out.rate', 'node.clientstats.active.cifs', 'cluster.protostats.nfs', 'cluster.node.count.all', 'node.load.15min', 'node.disk.xfer.size.in.avg', 'cluster.protostats.cifs', 'node.clientstats.active.nfs', 'cluster.net.ext.bytes.in.rate', 'cluster.protostats.nfs.total', 'node.ifs.heat.getattr.total', 'node.ifs.heat.unlink.total', 'cluster.protostats.http', 'node.ifs.heat.blocked.total', 'node.clientstats.active.jobd', 'cluster.protostats.hdfs', 'cluster.protostats.cifs.total', 'cluster.protostats.siq.total', 'node.clientstats.active.http', 'node.load.1min', 'cluster.node.count.down', 'node.disk.iosched.latency.avg', 'cluster.cpu.intr.avg', 'ifs.ops.in.rate', 'cluster.protostats.lsass_in', 'node.memory.cache', 'cluster.cpu.user.avg', 'node.disk.access.slow.avg', 'cluster.disk.xfers.out.rate', 'node.disk.xfers.out.rate.avg', 'cluster.protostats.http.total', 'cluster.disk.xfers.rate', 'node.clientstats.active.siq', 'node.net.int.bytes.in.rate', 'cluster.net.ext.errors.in.rate', 'cluster.protostats.ftp.total', 'cluster.cpu.sys.avg', 'node.ifs.heat.contended.total', 'cluster.protostats.jobd.total', 'node.net.int.bytes.out.rate', 'node.ifs.heat.lookup.total', 'node.net.ext.errors.out.rate', 'cluster.protostats.smb2', 'node.clientstats.active.papi', 'node.clientstats.connected.http', 'ifs.bytes.in.rate', 'node.clientstats.connected.nfs', 'cluster.protostats.papi', 'node.memory.free', 'node.cpu.throttling', 'node.disk.bytes.in.rate.avg'])

 

 

ダッシュボードのセットアップ

次に、Grafanaのダッシュボードをセットアップしていきます。

1.Grafana(https://hostname:3000)にアクセスします。ログイン/パスワードは、admin/adminです。

grafana.JPG.jpg

 

2.ログイン後、データソースの登録を実施します。

datasource.JPG.jpg

 

3.ダッシュボードの取得

Isilon Data Insight Connectorで使用したいダッシュボードを取得します。

ダッシュボードはJSONファイル形式で提供されており、Isilon Data Insight ConnectorのGitHubもしくは、Grafana Labsから入手可能です。(インストールしたディレクトリ内にも含まれております。)

2018年1月1日現在、Isilon Data Insight Connectorで使用可能なダッシュボードは下記6つとなります。

・HDFS - DataNodes (Isilon)

・HDFS - Home (Isilon)

・Isilon Data Insights Cluster Capacity Utilization Table

・Isilon Data Insights Cluster Detail

・Isilon Data Insights Cluster Summary

・Isilon Data Insights Protocol Detail

 

なお、Grafana LabsにはIsilon用のダッシュボードが7つ存在しますが、CDH with IsilonはClouderaの状態を監視するためのダッシュボードとなり別途Cloude Managerとの連携が必要となります。

grafanalabs.png

                                             https://grafana.com/dashboards?search=isilon

 

 

4.ダッシュボードの登録

上記、3.で取得したダッシュボードをGrafanaメニューの「Dashboards」の「Import」から登録します。

JSON.JPG.jpg

 

 

Isilon Data Insight Connector使用方法

Grafanaの画面左側(下記画面の赤い丸)から表示したいダッシュボードを選択します。

次に、画面右側(下記画面の黄色い丸)表示期間や更新間隔を選択します。

dashboards_ranges.JPG.jpg


下記では、Isilon Data Insights Cluster SummaryとIsilon Data Insights Protocol Detailの2つのダッシュボードをご紹介したいと思います。

 

Isilon Data Insights Cluster Summary

監視している複数のIsilonクラスタの正常性および性能概要を表示します。

・クラスタの状態

・CPU使用率

・使用容量

・NFSスループット、ops、レイテンシ

・SMBスループット、ops、レイテンシ

・IsilonクラスタのWebUIへのリンクや、詳細なダッシュボードへのリンク機能(詳細なダッシュボードへのリンクは、Isilon Data Insights Cluster DetailをImportしている必要があります。)

cluster_summary.png

                                     

 

Isilon Data Insights Protocol Detail

監視しているIsilonクラスタをプロトコル別に表示します。

・クラスタの状態

・プロトコル別クライアント接続数

・プロトコル別オペレーション数とCPU使用率

・プロトコル別オペレーション

・プロトコル別オペレーション数、スループット(Read/Write別)、レイテンシ(平均、最大)など

・IsilonクラスタのWebUIへのリンクや、詳細なダッシュボードへのリンク機能

protocol_detail.JPG.jpg



Grafanaを使用すると比較的簡単にダッシュボードが作成できます。難しいと思われる場合は既存のダッシュボードをEditして、どのようなMetricsになっているか確認してみてください。是非、オリジナルのダッシュボードを作成頂ければと思います!

edit.JPG.jpg

 


InsightIQ

最後に、InsightIQについてご紹介します。(簡単にではございますが。)

InsightIQは、Isilonの性能情報とファイルシステムの情報を収集しグラフィカルに表示/分析するソフトウェアです。

OneFS web administration interface(IsilonのWebツール)同様、非常にシンプルなインターフェースなので専門知識がなくても簡単に使用することができます。

InsightIQのインストールについては割愛しますが、インストール自体は非常に簡単でVMwareのOVAもしくは、Linux RPM形式で提供しています。なお、InsightIQはIsilonクラスタをお持ちであれば無償でご利用いただけます。

IIQ_Dashb.JPG.jpg

 

 

Isilon Data Insights Connectorは性能分析がメインですが、InsightIQは性能分析だけでなく非常に強力なファイル分析機能が実装されています。

 

例えば、社内のファイルサーバでは性能以外にも、どのくらい容量が使用されているか、昨日や1週間前と比べてどの部門や誰が多く容量を消費したか、30日間アクセスが無いファイルは全体のうちどれくらい存在するか、また、ファイルサイズ毎、拡張子毎にファイル数をカウントすることもできますし、あと何ヶ月で容量が枯渇するかといったキャパシティ予測も可能です。

 

また、定期的にレポートを生成してメールで自動送信したり、結果をCSVでエクスポートすることもできます。

IIQ_forecast.JPG.jpg

特に、このようなファイル分析は、従来のファイルストレージでは可視化するために3rd Partyのソフトウェアが別途必要でしたが、Isilonはファイル単位でデータを保護するというアーキテクチャの特性から、Isilon自体がファイルに関する情報を持っていますので別途3rd Partyソフトウェアを用意する必要がありません。


 

IIQ_perf.JPG.jpg

 

 

まとめ

Isilon Data Insights ConnectorとInsightIQの比較は下記のとおりです。

Data Insight ConnectorInsightIQ
主な機能性能分析

性能分析

容量分析(容量予測、クォータ、重複排除など)

カスタマイズ

ダッシュボード、グラフ、各種項目に至るまで細かな
カスタマイズが可能

Performance Reportの

カスタマイズが可能

結果をCSVへエクスポート可能

費用無償無償
サポートコミュニティサポートEMCサポート

 

 

 

参考情報

Isilon Data Insights Connector GitHub https://github.com/Isilon/isilon_data_insights_connector

Keith Anderson's Blog https://community.emc.com/blogs/keith/2017/01/26/isilon-data-insights-connector--do-it-yourself-isilon-monitoring

Isilon InsightIQ https://japan.emc.com/collateral/software/data-sheet/h8317-ds-isilon-insightiq.pdf

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~



安井 謙治

EMCジャパン株式会社

アイシロン事業本部 SE部

前回のIsilonianTechでは、Dockerの永続的なストレージとしてバックエンドにIsilonを使うためのプラグインであるREX-Rayをご紹介しました。

今回はOpenStackの共有ファイルストレージ サービスのプロジェクトであるManilaとIsilonとの連携についてご説明します。

DellEMC-OpenStack.jpg

             thesourceblog.emc.comから引用

 

 

ManilaとIsilon

OpenStackのサイトの情報によると、2017年12月1日現在ではManilaは4年経過しており、14%の利用率(ユーザ調査による本番導入への割合)、5/7の成熟度となっており日々採用が増えています。

OpenStackにおいては、非構造化データという点ではSwiftが先行していましたが、上記の結果から、やはりファイルサービスのニーズが多いというのが伺えます。

IsilonはKiloリリース時からManilaドライバを提供しておりました。私が最初にOpenStack ManilaとIsilonの組み合わせを検証したのは、いまから1年半ほど前なのですが、当時と比べてDellEMC製品全体でManilaドライバのエンハンスが行われており、IsilonやUnityだけではなくOcataリリースからはVMAX eNASがサポートされました。

 

前回のREX-Ray同様、今回もManilaとIsilonの動作を中心に見ていきたいと思います。

なお、テストするにあたり下記の環境を用意しました。

env.png

環境としては、上記のようにOpenStack用のLinuxを最低 1台、Isilon 1クラスタを準備します。OpenStackのインストールについては、巷のコミュニティサイトに情報が沢山ありますしOpenStackの特性から日々更新されますので本ブログでは取り上げません。テスト環境であれば、KollaやPackstackでインストールいただければ問題ありませんし、もちろん、Isilonはシミュレータでも動作上問題ありません。

まず、Isilon側で事前設定をしてから次にManilaの設定をしていきます。

 

 

Isilon側での事前準備

1. ライセンス投入

OpenStack Manilaのバックエンドストレージとして、Isilonを動作させるにあたりSmartQuotasのライセンスが必須となります。

Manilaでは共有を作成する際に容量を指定しますが、従来のストレージの場合は容量=切り出すボリュームの容量となるのに対して、

Isilonはボリュームの概念がないため、内部的にクォータのハードリミットを定義することにより容量を設定します。

(実は当初検証した際に、SmartQuotasライセンスの投入を忘れておりハマりました。ロジックがわかれば何てことは無いのですがManilaのIsilon driverのページにも記載がありませんのでご注意ください。)

 

また、Snapshotを使用する際にはSnapshotIQライセンスが必要となります。

Isilon側での設定は、ライセンスの投入だけで終わりです。

 

 

OpenStack Manilaの設定

1. ドライバの確認

OpenStackのインストールが終わったら、まずIsilonドライバが入っているかを確認します。Isilonドライバは下記の場所に存在します。

/usr/lib/python2.7/site-packages/manila/share/drivers/dell_emc/plugins/isilon/isilon.py

(余談ですが、Mitakaリリース時に検証した際には、Dellとの統合前でしたのでドライバのパスも/usr/lib/python2.7/site-packages/manila/share/drivers/emc/plugins/isilon/isilon.pyでした。)

 

2. manila.confの編集

Manilaを起動する際に必要な/etc/manila/manila.confを以下のように編集します。

~

enabled_share_backends = generic , isilon

~

[isilon]

share_driver = manila.share.drivers.dell_emc.driver.EMCShareDriver

driver_handles_share_servers = False

emc_share_backend = isilon

emc_nas_server = manilafs.isilon.local

emc_nas_login = root

emc_nas_password = Isilon123

emc_nas_root_dir = /ifs/manila

enabled_share_backendsの項目を検索して、追加するバックエンドを追記します。(今回はisilonという名前にします。)

[isilon]は、上記のenabled_share_backendsで指定した名前と同じにします。

emc_share_backendは、isilon(固定)です。

emc_nas_root_dirには、Manilaで利用するディレクトリを定義します。定義したディレクトリ配下にmanila createで作成した共有のディレクトリが作成されます。なお、このディレクトリ(今回の場合は/ifs配下のmanila)は存在しなくてもManilaを起動させた時点でIsilon側にディレクトリが作成されます。


3. サービスの起動

Manilaのサービスを再起動します。

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-api

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-share

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-scheduler

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-data

 

Manilaの起動確認

[root@manila ~(keystone_admin)]# manila service-list

+----+------------------+-----------------+------+---------+-------+----------------------------+

| Id | Binary           | Host            | Zone | Status  | State | Updated_at                 |

+----+------------------+-----------------+------+---------+-------+----------------------------+

| 1  | manila-share     | manila@generic  | nova | enabled | up    | 2017-11-29T02:00:43.000000 |

| 2  | manila-share     | manila@isilon   | nova | enabled | up    | 2017-11-29T02:00:43.000000 |

| 3  | manila-scheduler | manila          | nova | enabled | up    | 2017-11-29T02:00:45.000000 |

+----+------------------+-----------------+------+---------+-------+----------------------------+


4. extra-specs定義(スナップショットの有効化)

Typeの作成

[root@manila ~(keystone_admin)]# manila type-create isilon F

+----------------------+--------------------------------------+

| Property             | Value                                |

+----------------------+--------------------------------------+

| required_extra_specs | driver_handles_share_servers : False |

| Name                 | isilon                               |

| Visibility           | public                               |

| is_default           | -                                    |

| ID                   | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 |

| optional_extra_specs |                                      |

+----------------------+--------------------------------------+


スナップショットの有効化

[root@manila ~(keystone_admin)]# manila type-key isilon set snapshot_support=True

[root@manila ~(keystone_admin)]# manila extra-specs-list

+--------------------------------------+-------------+--------------------------------------+

| ID                                   | Name        | all_extra_specs                      |

+--------------------------------------+-------------+--------------------------------------+

| 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 | isilon      | snapshot_support : True              |

|                                      |             | driver_handles_share_servers : False |

+--------------------------------------+-------------+--------------------------------------+



いざ、実行

NFSとSMBの共有を作成していきます。

1. NFS exportの作成

例えば、isi-nfsという名前で200GBの容量のNFS exportを作成する場合は下記となります。

[root@manila ~(keystone_admin)]# manila create --name isi-nfs --share-type isilon NFS 200

+---------------------------------------+--------------------------------------+

| Property                              | Value                                |

+---------------------------------------+--------------------------------------+

| status                                | creating                             |

| share_type_name                       | isilon                               |

| description                           | None                                 |

| availability_zone                     | None                                 |

| share_network_id                      | None                                 |

| share_server_id                       | None                                 |

| share_group_id                        | None                                 |

| host                                  |                                      |

| revert_to_snapshot_support            | False                                |

| access_rules_status                   | active                               |

| snapshot_id                           | None                                 |

| create_share_from_snapshot_support    | False                                |

| is_public                             | False                                |

| task_state                            | None                                 |

| snapshot_support                      | True                                 |

| id                                    | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 |

| size                                  | 200                                  |

| source_share_group_snapshot_member_id | None                                 |

| user_id                               | f66ef9839c6249228818461bb8a8be59     |

| name                                  | isi-nfs                              |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 |

| has_replicas                          | False                                |

| replication_type                      | None                                 |

| created_at                            | 2017-12-01T07:35:31.000000           |

| share_proto                           | NFS                                  |

| mount_snapshot_support                | False                                |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb     |

| metadata                              | {}                                   |

+---------------------------------------+--------------------------------------+

 

作成したNFS exportの確認

下記、改行表示されて見難いですがexport_locationsが実際のパスとなります。(緑色部分

[root@manila ~(keystone_admin)]# manila show isi-nfs

+---------------------------------------+-------------------------------------------------------------------------------------+

| Property                              | Value                                                                               |

+---------------------------------------+-------------------------------------------------------------------------------------+

| status                                | available                                                                           |

| share_type_name                       | isilon                                                                              |

| description                           | None                                                                                |

| availability_zone                     | nova                                                                                |

| share_network_id                      | None                                                                                |

| export_locations                      |                                                                                     |

|                                       | path = manilafs.isilon.local:/ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3 |

|                                       | preferred = False                                                                   |

|                                       | is_admin_only = False                                                               |

|                                       | id = f8d33c04-e8aa-4514-bf3d-42c1e587cb8c                                           |

|                                       | share_instance_id = 41346526-185d-4470-9e8d-9e09eb1264c3                            |

| share_server_id                       | None                                                                                |

| share_group_id                        | None                                                                                |

| host                                  | manila@isilon#EMC_NAS_Storage                                                       |

| revert_to_snapshot_support            | False                                                                               |

| access_rules_status                   | active                                                                              |

| snapshot_id                           | None                                                                                |

| create_share_from_snapshot_support    | False                                                                               |

| is_public                             | False                                                                               |

| task_state                            | None                                                                                |

| snapshot_support                      | True                                                                                |

| id                                    | 0d6c0960-cb0d-4758-8e98-a0b6ee268851                                                |

| size                                  | 200                                                                                 |

| source_share_group_snapshot_member_id | None                                                                                |

| user_id                               | f66ef9839c6249228818461bb8a8be59                                                    |

| name                                  | isi-nfs                                                                             |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823                                                |

| has_replicas                          | False                                                                               |

| replication_type                      | None                                                                                |

| created_at                            | 2017-12-01T07:35:31.000000                                                          |

| share_proto                           | NFS                                                                                 |

| mount_snapshot_support                | False                                                                               |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb                                                    |

| metadata                              | {}                                                                                  |

+---------------------------------------+-------------------------------------------------------------------------------------+

 

2. SMB共有の作成

続いて、SMB共有を作成していきます。isi-cifsという名前で200GB作成する場合は下記となります。

[root@manila ~(keystone_admin)]# manila create --name isi-smb --share-type isilon CIFS 200

+---------------------------------------+--------------------------------------+

| Property                              | Value                                |

+---------------------------------------+--------------------------------------+

| status                                | creating                             |

| share_type_name                       | isilon                               |

| description                           | None                                 |

| availability_zone                     | None                                 |

| share_network_id                      | None                                 |

| share_server_id                       | None                                 |

| share_group_id                        | None                                 |

| host                                  |                                      |

| revert_to_snapshot_support            | False                                |

| access_rules_status                   | active                               |

| snapshot_id                           | None                                 |

| create_share_from_snapshot_support    | False                                |

| is_public                             | False                                |

| task_state                            | None                                 |

| snapshot_support                      | True                                 |

| id                                    | 2c841cc1-6f80-48c3-8483-c03ac80ea7e3 |

| size                                  | 200                                  |

| source_share_group_snapshot_member_id | None                                 |

| user_id                               | f66ef9839c6249228818461bb8a8be59     |

| name                                  | isi-smb                              |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 |

| has_replicas                          | False                                |

| replication_type                      | None                                 |

| created_at                            | 2017-12-01T07:38:21.000000           |

| share_proto                           | CIFS                                 |

| mount_snapshot_support                | False                                |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb     |

| metadata                              | {}                                   |

+---------------------------------------+--------------------------------------+

 

作成したSMB共有の確認

NFS同様、export_locationsが実際のパスとなります。(緑色部分

[root@manila ~(keystone_admin)]# manila show isi-smb

+---------------------------------------+---------------------------------------------------------------------------+

| Property                              | Value                                                                     |

+---------------------------------------+---------------------------------------------------------------------------+

| status                                | available                                                                 |

| share_type_name                       | isilon                                                                    |

| description                           | None                                                                      |

| availability_zone                     | nova                                                                      |

| share_network_id                      | None                                                                      |

| export_locations                      |                                                                           |

|                                       | path = \\manilafs.isilon.local\share-9060f6dd-2da0-4175-af49-eaa154266bf0 |

|                                       | preferred = False                                                         |

|                                       | is_admin_only = False                                                     |

|                                       | id = 7ff04f68-d225-49e0-8ea7-405ab695b9c6                                 |

|                                       | share_instance_id = 9060f6dd-2da0-4175-af49-eaa154266bf0                  |

| share_server_id                       | None                                                                      |

| share_group_id                        | None                                                                      |

| host                                  | manila@isilon#EMC_NAS_Storage                                             |

| revert_to_snapshot_support            | False                                                                     |

| access_rules_status                   | active                                                                    |

| snapshot_id                           | None                                                                      |

| create_share_from_snapshot_support    | False                                                                     |

| is_public                             | False                                                                     |

| task_state                            | None                                                                      |

| snapshot_support                      | True                                                                      |

| id                                    | 2c841cc1-6f80-48c3-8483-c03ac80ea7e3                                      |

| size                                  | 200                                                                       |

| source_share_group_snapshot_member_id | None                                                                      |

| user_id                               | f66ef9839c6249228818461bb8a8be59                                          |

| name                                  | isi-smb                                                                   |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823                                      |

| has_replicas                          | False                                                                     |

| replication_type                      | None                                                                      |

| created_at                            | 2017-12-01T07:38:21.000000                                                |

| share_proto                           | CIFS                                                                      |

| mount_snapshot_support                | False                                                                     |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb                                          |

| metadata                              | {}                                                                        |

+---------------------------------------+---------------------------------------------------------------------------+

 

3. IPアドレスでのアクセス制限

isi-nfsに対してaccess-allowを実行します

[root@manila ~(keystone_admin)]# manila access-allow isi-nfs ip 192.168.1.50

+--------------+--------------------------------------+

| Property     | Value                                |

+--------------+--------------------------------------+

| access_key   | None                                 |

| share_id     | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 |

| access_type  | ip                                   |

| access_to    | 192.168.1.50                         |

| access_level | rw                                   |

| state        | queued_to_apply                      |

| id           | cd20b3ed-a5ee-4a78-ba41-9fa442d761e1 |

+--------------+--------------------------------------+

 

アクセスリストの確認

[root@manila ~(keystone_admin)]# manila access-list isi-nfs

+--------------------------------------+-------------+---------------+--------------+--------+------------+

| id                                   | access_type | access_to     | access_level | state  | access_key |

+--------------------------------------+-------------+---------------+--------------+--------+------------+

| cd20b3ed-a5ee-4a78-ba41-9fa442d761e1 | ip          | 192.168.1.50  | rw           | active | None       |

+--------------------------------------+-------------+---------------+--------------+--------+------------+

 

4. スナップショットの作成

isi-nfsに対してisi-nfs-snapという名前のスナップショットを作成します

[root@manila ~(keystone_admin)]# manila snapshot-create --name isi-nfs-snap isi-nfs

+-------------------+--------------------------------------+

| Property          | Value                                |

+-------------------+--------------------------------------+

| status            | creating                             |

| share_id          | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 |

| user_id           | f66ef9839c6249228818461bb8a8be59     |

| description       | None                                 |

| created_at        | 2017-12-01T08:26:20.673633           |

| size              | 200                                  |

| share_proto       | NFS                                  |

| provider_location | None                                 |

| id                | c06d925c-7161-415d-9d9e-3cc1c369c150 |

| project_id        | 59fd5a09ed42459d86028dd97341a3fb     |

| share_size        | 200                                  |

| name              | isi-nfs-snap                         |

+-------------------+--------------------------------------+

 

スナップショットの確認

[root@manila ~(keystone_admin)]# manila snapshot-list

+--------------------------------------+--------------------------------------+-----------+---------------+------------+

| ID                                   | Share ID                             | Status    | Name          | Share Size |

+--------------------------------------+--------------------------------------+-----------+---------------+------------+

| c06d925c-7161-415d-9d9e-3cc1c369c150 | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 | available | isi-nfs-snap  | 200        |

+--------------------------------------+--------------------------------------+-----------+---------------+------------+

 

 

 

おまけ. Isilon側から確認

manila createを実行した際に、Isilon側にはディレクトリおよびNFS/SMB共有が作成されクォータが設定されます。

ディレクトリの確認

s210-1# cd /ifs/manila

s210-1# ls

share-41346526-185d-4470-9e8d-9e09eb1264c3

share-9060f6dd-2da0-4175-af49-eaa154266bf0

 

NFS exportの確認

s210-1# isi nfs exports list

ID   Zone   Paths                                                  Description

---------------------------------------------------------------------------------

1    System /ifs                                                   Default export

2    System /ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3 -

---------------------------------------------------------------------------------

Total: 2

 

SMB共有の確認

s210-1# isi smb shares list

Share Name                                 Path                                      

-------------------------------------------------------------------------------------------------

ifs                                        /ifs                                      

share-9060f6dd-2da0-4175-af49-eaa154266bf0 /ifs/manila/share-9060f6dd-2da0-4175-af49-eaa154266bf0

-------------------------------------------------------------------------------------------------

Total: 2

 

クォータの確認(manila createの際に200GBを指定したのでディレクトリクォータでハードリミット200GBと設定されています。)

s210-1# isi quota list

Type      AppliesTo  Path                                                   Snap  Hard    Soft  Adv  Used

----------------------------------------------------------------------------------------------------------

directory DEFAULT    /ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3 No    200.00G -     -    0

directory DEFAULT    /ifs/manila/share-9060f6dd-2da0-4175-af49-eaa154266bf0 No    200.00G -     -    0

----------------------------------------------------------------------------------------------------------

Total: 2

 

スナップショットの確認

s210-1# isi snapshot list

ID    Name                                                   Path                    

-------------------------------------------------------------------------------------------------------------------

27566 share-snapshot-3a4fcbd7-16dd-402c-b107-5c7544c0f787    /ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3

-------------------------------------------------------------------------------------------------------------------

Total: 22

 

以上、少しでもManilaやIsilonの組み合わせについて参考になれば幸いです。

 

 

参考情報

Isilon driver https://docs.openstack.org/ocata/config-reference/shared-file-systems/drivers/emc-isilon-driver.html

Isilon simulator https://www.emc.com/products-solutions/trial-software-download/isilon.htm

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

 

さいごに

第1回、第2回とDocker/OpenStackのバックエンドストレージでのIsilonについてご紹介しました。

Software Definedの流れがある一方、拡張面や性能面、運用面での課題も多く今回のようにオフロードできる部分は

アプライアンスに任せるとことも、まだまだ多いのが実情です。

(IsilonにもSoftware Definedの製品がありますので、そちらは別途ご紹介したいと思います。)

 

次回は、Isilonで利用可能なツールのお話をしたいと思います。

 

 

安井 謙治

EMCジャパン株式会社

アイシロン事業本部 SE部

Isilon製品単体はもちろん素晴らしいのですが、実はIsilonと連携するツールは様々なものがあります。

普段はIsilonの製品中心にお話しすることが多く、このようなツールについては中々ご紹介する機会が無いので、

本コミュニティにブログ形式で数回にわたり連載したいと思います。


今回はDocker VolumeのプラグインであるREX-RayとIsilonについてご紹介します。

code.png

                                                                                     https://thecodeteam.com/


REX-Ray

DockerのプラグインであるREX-Rayは、{code}コミュニティの中でも活発なプロジェクトです。DellEMCのストレージ以外にもAmazon、Microsoft、Google、Ceph、OpenStack Cinder、VirtualBoxなど様々なストレージをサポートしていますが、本ブログではIsilonと連携させるための方法について説明します。

 

IsilonはファイルストレージですのでDockerコンテナへはNFSでボリュームを提供します。

NFSであればコンテナからのマウントも簡単ですので個々にマウントでも良いですが、REX-Rayを用いることで、例えばサービス基盤として同じ用途のコンテナを複数構築する場合、Dockerからファイル(Isilon)やブロック(ScaleIO)などのストレージを意識することなく同一のオペレーションで実行できますのでインフラの管理を簡素化することが可能です。

もちろん、ファイルストレージ(NFS)ならではのメリットとしてLinuxクライアントのコンテナ(開発環境)で開発したものをIsilon上に配置して開発したデータを、そのまま本番側にマウントして運用することもできます。


なお、今回はテストするにあたり下記の環境を用意しました。

env.png

実際に、REX-Ray+Isilonを試して頂く際の環境としては、上記のようにDockerとREX-Ray用のLinux 1台と、Isilonクラスタを準備します。もちろん、Isilonはシミュレータでも動作上問題ありません。

まず、Isilon側で事前設定をしてから次にREX-Rayのインストールをしていきます。



Isilon側での事前準備

1. ライセンス投入

REX-RayライブラリであるlibStorageを動作させるにあたりSnapshotIQのライセンスが必須となります。

また、Dockerでボリュームを作成する際にサイズ指定したい場合は、SmartQuotasライセンスが必要になります。

Isilonはボリュームという概念が無いため、サイズを指定するとDockerで提供するディレクトリを作成する時にクォータのハードリミットが設定されます。

(余談ですがSmartQuotasは、IsilonとOpenStack Manila連携の際には必須のライセンスです。Manilaについては別の回でご紹介します。)


2. ユーザ権限付与

REX-RayではIsilonのPlatform APIを実行してボリューム作成や管理を行いますのでAPIでアクセスするユーザを作成して以下の権限を付与します。テスト用途であればrootユーザでも可です。

 Namespace Access (ISI_PRIV_NS_IFS_ACCESS)

 Platform API (ISI_PRIV_LOGIN_PAPI)

 NFS (ISI_PRIV_NFS)

 Restore (ISI_PRIV_IFS_RESTORE)

 Snapshot (ISI_PRIV_SNAPSHOT)

 Quota (ISI_PRIV_QUOTA) ※クォータが必要な場合


GUIでも簡単にグループとロールが作成できますが、CLIで実施する場合は下記を参考にしてください。

例:rexray_roleという名前のロールを作成し上記権限を含めrexrayユーザにロールを割り当てる場合

isi auth roles create --name rexray_role

isi auth roles modify rexray_role --add-priv  ISI_PRIV_NS_IFS_ACCESS

isi auth roles modify rexray_role --add-priv  ISI_PRIV_LOGIN_PAPI

isi auth roles modify rexray_role --add-priv  ISI_PRIV_NFS 

isi auth roles modify rexray_role --add-priv  ISI_PRIV_IFS_RESTORE

isi auth roles modify rexray_role --add-priv  ISI_PRIV_QUOTA 

isi auth roles modify rexray_role --add-priv  ISI_PRIV_SNAPSHOT

isi auth roles modify rexray_role --add-user rexray

 

3. Exportsの作成

Dockerへ提供するディレクトリを作成しNFS Exportsを設定します。

Dockerのコンテナは、サブディレクトリにNFSマウントしますので、Enable mount access to subdirectories(サブディレクトリのマウントアクセスを許可)をチェックしてください。


REX-Rayインストール

REX-Rayのインストールは、下記のcurlコマンドで1発でインストールできます。バージョンを指定してインストールも出来ますがステーブル版の最新をお使い頂くことを推奨します。


1. インストールの実行

[root@Rex ~]# curl -sSL https://dl.bintray.com/emccode/rexray/install | sh


rexray has been installed to /usr/bin/rexray


REX-Ray

-------

Binary: /usr/bin/rexray

Flavor: client+agent+controller

SemVer: 0.11.0

OsArch: Linux-x86_64

Commit: 508023f4b0e4974f1844c26b39af7c4219f4c7a9

Formed: Mon, 16 Oct 2017 03:07:06 EDT

 

2. コンフィグファイルの作成

REX-Rayの起動に必要なconfig.ymlを作成します。

config.ymlは下記の例をコピペ頂いてご利用頂ければと思いますが、REX-Ray Configuration Generatorを用いることにより簡単に作成できます。

config.png

                              REX-Ray Configuration Generator http://rexrayconfig.codedellemc.com/

 

コンフィグファイルは、/etc/rexray/config.ymlを配置します。

/etc/rexray/config.ymlのサンプル

libstorage:

  service: isilon

isilon:

  endpoint: https://dockerfs.isilon.local:8080/

  group: wheel

  username: rexray

  password: a

  insecure: true

  volumePath: /ifs/volumes

  quotas: true

  nfsHost: dockerfs.isilon.local

  dataSubnet: 192.168.1.0/24

コンフィグファイルの項目についてですが、

insecureは、SSL通信を無効にしたい場合はtrueにします。

volumePathは、Docker Volumeを格納するディレクトリを指定します。デフォルトは/ifs/volumesとなります。(今回は明示的に記述しています)

quotasは、クォータを使用する場合はtrueにします。(要SmartQuotasライセンス)

dataSubnetは、Docker側のSubnetを指定します。(REX-Ray+Isilonのコンフィグは難しくないのですが唯一間違えやすいところです)


3. REX-Rayの起動

[root@Rex ~]# rexray start

● rexray.service - rexray

   Loaded: loaded (/etc/systemd/system/rexray.service; enabled; vendor preset: disabled)

   Active: active (running) since Mon 2017-10-23 02:32:46 EDT; 50ms ago

Main PID: 11312 (rexray)

   CGroup: /system.slice/rexray.service

           └─11312 /usr/bin/rexray start -f

Oct 23 02:32:46 Rex systemd[1]: Started rexray.

Oct 23 02:32:46 Rex systemd[1]: Starting rexray...

 

 

いざ、実行

1. Dockerからボリュームの作成

[root@Rex ~]# docker volume create --driver rexray --opt size=100 --name isi_vol1

isi_vol1

この時点で、Isilon上の/ifs/volumes配下にisi_vol1/dataという名前のサブディレクトリが作成されisi_vol1に100GBのクォータがセットされます。(/ifs/volumes/isi_vol1/data)

 

おまけ. Isilon側から確認

s210-1# isi quota list

Type      AppliesTo  Path                     Snap  Hard    Soft  Adv  Used

----------------------------------------------------------------------------

directory DEFAULT    /ifs/volumes/isi_vol1    No    100.00G -     -    8.1k

----------------------------------------------------------------------------

Total: 1


2. ボリュームの確認

[root@Rex ~]# docker volume ls

DRIVER              VOLUME NAME

rexray              isi_vol1


3. コンテナの起動

con1という名前のコンテナを起動する際に上記で作成したボリュームを、/rex_mntというディレクトリにマウントします。

[root@Rex ~]# docker run -ti --name=con1 --volume-driver=rexray -v isi_vol1:/rex_mnt ubuntu '/bin/bash'

 

おまけ. マウントの確認(コンテナ)

dfやmountコマンドでマウント状態を確認してみると、コンテナとサーバ側でマウントされていることがわかります。

dockerfs.isilon.local:/ifs/volumes/isi_vol1/data on /rex_mnt

 

おまけ. マウントの確認(サーバ)

dockerfs.isilon.local:/ifs/volumes/isi_vol1 on /var/lib/libstorage/volumes/isi_vol1/data


以上、簡単に試せますので是非REX-Ray+Isilonを使ってみてください!

 

 

参考情報

REX-Ray (機能、アーキテクチャ、ホワイトペーパ) https://rexray.thecodeteam.com/

REX-Ray (インストレーション、構成、トラブルシューティング) http://rexray.readthedocs.io/en/stable/

REX-Ray Configuration Generator http://rexrayconfig.codedellemc.com/

Isilon simulator https://www.emc.com/products-solutions/trial-software-download/isilon.htm



バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~



さいごに

Isilonの良さを知っていただくために、このたびIsilonianTechブログをスタートしました!

今後はオープンソース関連では順次、OpenStack Manila、POSH、Data Insightなど掲載していく予定です。

また、オープンソース以外でも最近お問合せの多いSD Edge(私の担当のお客様でも大規模に採用頂きました)や、あらためてIsilon

の機能面の良さなど、いろいろと情報を発信していきたいと思います。

(一応、全て検証は済んでいるのですが、月イチくらいでブログにアップしていければと思います。。)



安井 謙治

EMCジャパン株式会社

アイシロン事業本部 SE部

Filter Blog

By date:
By tag: