新しい会話を開始

未解決

35 メッセージ

2994

2019年2月27日 02:00

【ECS解説第1回】Elastic Cloud Storage (ECS) Community Edition (VM版) 最新版ご紹介

2019.02.27

皆様、こんにちは。

Dell EMC のオブジェクトストレージ製品である、Elastic Cloud Storage (ECS) はCommunity Editionとして検証用に無償のVM版をGitHubを通して提供しています。

新しいECS Community Editionをご紹介いたします。

 

概要

昨年8月に発表された新しいハードウェアプラットフォーム、EXシリーズのリリースに合わせて、ECSのソフトウェアイメージもV3.2.2.0にマイナーアップグレードされました。

そのリリースを受けて2018年9月に無償で提供されるVMware WorkstationなどでVMとして機能を試すことができるCommunity Editionも2.9.0-r-1にリリースアップされました。

2018年6月にリリースされたCommunity Edition 2.8.0 がECS Software V3.2.0.1ベースでしたので、2.9.0-r-1はV3.2.1で追加された拡張機能を含んだ新しいイメージです。

 

ECS V3.2.1には大きな改修ではないのですが、ストレージ内部で使われていないCASオブジェクトをモニターする機能やData Domain のCloud Tier機能で作られる大きなオブジェクト(4MB 超)のサポート、そして大きなNFSディレクトリのリスト機能を改善したことが挙げられています。

 

ECSの特長の一つはマルチプロトコルをG/Wサーバーを用意することなく実現でき、プロトコル間で一貫性のあるデータアクセスが可能なことです。今回のリリースでNFSが取り上げられたこともあり、今回は最新のCommunity Edition(VM版)を使って、NFSのようなファイルアクセスプロトコルとS3、Swiftのようなオブジェクトアクセスプロトコルの複数のマルチプロトコルでの同一データアクセスの確認と、データの一貫性を確認してみます。

 

アジェンダ
  • インストール方法(再案内)
  • Bucketへのアクセス
    • Swift CLIを用いたECSのBucketへのSwiftプロトコルでのアクセス・オブジェクトデータI/O
    • AWS S3APIを使用したECSのBucketへのS3プロトコルでのアクセス・オブジェクトデータI/O
    • NFSマウントによるECSのBucketのマウントとファイル(オブジェクト)アクセス
 
インストール方法

インストール方法はCommunity Edition 2.7.0と変更がありません。

Sourceもリリースされていますが、OVA形式イメージも提供されていますので、お手元にVMware ESXiやWorkstation, Playerがあれば手軽に起動することができます。

GitHubのOVA形式イメージのリンク:

https://github.com/EMCECS/ECS-CommunityEdition/blob/master/docs/source/installation/OVA_Installation.md

 

GitHubにInstallation Guideがありますので、参照ください。

https://github.com/EMCECS/ECS-CommunityEdition/blob/master/docs/source/installation/OVA_Installation.md

 

2018年6月にブログとしてアップされたこちらの日本語記事も是非ご覧ください。詳細に記載されていますので失敗なしにインストールできます。

https://community.emc.com/community/support/japanese/blog/2018/05/09/isiloniantech-%E7%AC%AC8%E5%9B%9E-elastic-cloud-storage-ecs-ecs-community-edition

 

注意点の一つはVMのリソースとして下記の仕様を最小リソースとしてVMに割り当ててください。割り当てが不十分だとOS起動後に実施するインストール作業がリソース不足により途中で失敗します。

 

  • 16GB RAM ← デフォルトの仮想マシン設定は2GBになっています。
  • 4 CPU cores
  • (Optional) Increase vmdk from the minimum 104GB

注意点の二つ目は、インターネット接続ができること、NTPサーバーとDNSサーバー準備しておく必要があります。

 

注意点の三つ目は、インストールのステップは結構時間がかかります。特に最後のova-step2を投入によって、準備したコンテナを立ち上げますが、コマンドプロンプトが返ってきても、10分くらいは次の設定に進むのは待ってください。

 

Buckets構成へのアクセス

今回はxubuntu (ubuntu)18.04をアクセスクライアントとしてECS VMをインストールするVMware WorkstationにVMを作成します。ECSとxubuntuの二つのVMをvnet8(NAT)配下のネットワークに接続させました。

このVMからウェブブラウザを起動して、立ち上げたECS VMノードにアクセスを試みます。今回は、ECSノードのIPアドレスを192.168.40.100に設定しました。20190227_001.pngUser Name/Passwordは root/ChangeMe になっています(videployのデフォルトを使用)。

ログインに成功するとDashboard画面に遷移します。

20190227_002.png

 

 
リソースの確認

ここで、オブジェクトストレージの各リソースを確認します。

左側のメニューからMange> Storage Polls とクリックしていくと、videployで設定されていたStorage Poolの sp1 が作成されていることを確認できます。

20190227_003.png

同じように左側のメニューから Manage> Virtual Data Center をクリックすると作成されているVirtual Data Center, VDCを確認できます。この例ではvideployで事前に設定されていたvdc1が見えています。

20190227_004.png

VDCの一覧の右端の Edit ボタンをクリックするとvdc1の構成が一覧できます。

20190227_005.png

Key 「pwPhwHQySrWrwrwTPnLR」

さらに Manage> Namespace をクリックすると、事前に構成されていたns1がリストされます。

20190227_006.png

VDC同様、右端のEdit ボタンをクリックすると、ns1で設定できる各ポリシーを確認できます。

先を急ぎ、Manage> Bucketsをクリックしましょう。

20190227_007.png

さらに右端のEdit Bucketをクリックすると、bucket1の構成を確認・変更できます。

まずは1ページ目を確認します。

20190227_008.png

bucket1はobject_admin1がBucket Ownerになっています。この後、Bucketにアクセスするときには、Bucket Ownerの入力が必要になりますので、覚えておいてください。

 

次にページ最後のNext> ボタンをクリックすると、オブジェクトストレージのBucketにファイルシステムやCAS、Metadata Searchを実行できるようにするか設定できるRequired 画面が表示されます。

20190227_009.png

後ほど設定するNFSでアクセスするときもこのページでの設定が必要になります。

Cancel ボタンをクリックして、いったん前の画面に戻ります。

 

ここまでの手順で確認した作成済みのbucket1でオブジェクトアクセスは可能になっています。

Swiftでのアクセス

Swiftプロトコルでbucket1にアクセスをする前に、設定を確認します。

bucket1の設定をECSのマネジメント画面からもう一度見てみましょう。

左側のメニューのManage > Bucketsをクリックするとbucket1の設定のサマリを見ることができます。ここでbucket1のOwnerはobject_admin1が設定されていることがわかります。

20190227_010.png

今度は左側のメニューからManage >Users でobject-admin1のユーザー情報を見てみましょう。

開いたページの下部のほうに Object Accessの欄が表示されています。それぞれS3/AtmosとSwiftの項目があり、Secret Key、あるいはPasswordが設定されていることがわかります。

Swiftには「ChangeMe」がPasswordとして設定されています。(videployの中で平文で記載されていますので確認してみてください。)

20190227_011.png

bucket1にアクセスする情報はわかりましたので、SwiftプロトコルでCLIツールを用いてアクセスをします。ここではpython-swiftclientをインストールして、ECS上のbucket1にSwiftプロトコルでアクセスをしてみたいと思います。

Linux, Mac, WindowsのOSにそれぞれ対応したリリースがありますので、詳しくは各OS向けのディストリビューションを参照ください。今回用意したxubuntuはUbuntuのディストリビューションが利用できました。

sudo apt-get install python-pip

sudo apt-get install python-swiftclient

pip install python-swiftclient

認証サーバーとしてKeystoneがあれば、Keystoneの登録も必要になりますが、今回はECSへのアクセスを確認するだけにしますので、設定なしで進めます。

 

python-swiftclientがインストールできましたら、早速、ECSにアクセスをしてみたいと思います。まずECSのbucketの設定を見てみます。VM版では導入時にbucket1を事前に作ってありました。swift アクセスでのユーザーを確認しておきましょう。

 

xubuntuからECSのswift環境にアクセスしてみます。ECSへswiftプロトコルでアクセスする場合、httpであればポート9024、https (SSL)であればポート9025を使用します。

アクセスするユーザーは、-U オプション、パスワードは、-K オプションを使用し、コマンドとしては、listを使ってみます。

swift -A http://192.168.40.100:9024/auth/v1.0/ -U object_admin1 -K ChangeMe list

コマンドの投入後のイメージが以下のように、bucket1が存在することが表示されます。

20190227_012.png

このbucket1にはまだobjectが格納されていないため、bucket1の中をListしても何も出力されません。

20190227_013.png


このbucket1にテキストデータのtest.dataをアップロードしてみます。アップロード後にbucket1の中をListすると、アップロードしたtest.dataが表示されました。

20190227_014.png

このデータを使って、次のS3でのアクセスを進めてみたいと思います。

つまり、SwiftでアクセスしたデータがS3でもアクセスできることを確認します。

それぞれ、SwiftとS3プロトコルでObjectをListしてみました。のbucket1にアクセスしたいと思います。S3でのアクセスにはhttpであればポート9020、https (SSL)であればポート9021を使用します。

bucket1のOwnerであるobject-admin1にはS3のSecret Keyも設定されていました。

Swiftの項目でも表示していましたが、改めて左側のメニューからManage >Usersをクリックし、object-admin1を選択してS3/AtmosのSecret Keyを表示してみましょう。S3/AtmosのSecret Keyはチェックボックスをクリックすれば平文で見ることができます。

20190227_015.png

すでにUbuntuにはawscli をubuntuにインストールしてあります(インストールコマンド sudo apt install awsclie -y でインストールできます)。

aws s3api プロトコルでオブジェクトの操作が可能になります。

20190227_016.png

list-objectコマンドを使ってbucket1のObjectの一覧を取得しました。Key: test.data として表示されています。

このtest.dataをget-objectコマンドを使ってダウンロードして、test.data.s3としてUbuntuに保管します。そのうえで、test.data.s3を修正し、put-objectコマンドをつかってアップロードをしてみましょう。

20190227_017.png

修正したtest.data.s3をアップロードした結果です。bucket1の中をlist-objectでListすると、二つのObjectがListされています。

20190227_018.png

当然ですが、Swiftでも同じように二つのObjectがListされます。
20190227_019.png
 
NFSでのアクセス

ECSはNFSv3をサポートしています。ECSでNFSの利用は、例えばアーカイブデータのような比較的I/Oの少ない静的なデータを、オブジェクトストレージと共有することを想定しています。NAS専用機のように決して小サイズのデータにも十分なパフォーマンスを提供するというよりは、大きなデータサイズのオブジェクトデータをファイルとして読み出し、書き出しを中心に取り扱うことができるようにすることを効率的に、かつファイルサイズの制約などなしに行えることががメリットです。

 

ECSでNFSを利用できるようにするためには、NFSアクセスのためのbucketsにNFSプロトコルでアクセスするUnix User/Groupのセットをマッピングする必要があります。

 

また、Bucketを作成時にファイルアクセス(NFS、HDFS)を利用できるように設定する必要があります。今回使用しているVM版のECSにvideployで導入時に作成していたbucket1はファイルアクセスをEnableにしてありません。したがって、新たにbucketを作成する必要があります。

 

新しいBucketの作成

NFSとオブジェクトアクセスが可能なBucketを作成します。

Bucket Managementに戻って、新しいBucket、ここではbucket2を作成します。左側のメニューから、Manage >BucketsをクリックしてBucketの一覧表の上部にあるNew Bucket ボタンをクリックします。

 

bucket Nameを bucket2 として作成します。Ownerは bucket1同様 object_admin1 としておきます。

20190227_020.png

Next ボタンをクリックし次の画面、Required に進みます。

ここで File System(NFS、HDFSの利用) を On にします(On ボタンをクリック)。また、Default Bucket Group にアクセスさせるユーザーの所属するグループを記載します。ここではnfsgroupを入力しました。この設定はBucket設定後は変更できません。

20190227_021.png

Next ボタンをクリックし、次のOptionalの画面は特に設定せず、Save ボタンをクリックします。Bucket Managementの画面に戻り、Bucketのリストに新しい bucket2 がリストされました。

20190227_022.png

次にManage> File をクリックします。

すでにクリックされた状態のはずですが、クリックされた状態でなければ上部のExportsボタンをクリックしてください。

20190227_023.png

New Export ボタンをクリックし、New File Export画面に遷移した後、Bucket のダウンリストで先ほどファイルアクセスも可能になるよう作成したbucket2を選択します。

20190227_024.png

次にExport Host Options の Addボタンをクリックし、ポップアップ画面に今回使用しているxubuntuのIPアドレス、192.168.40.125をExport HostのボックスにセットしPermissions を Read/Writeに選択し、Add ボタンをクリックします。

 

今回は変更しませんが、このページでExport Pathを変更することができることを確認してください。また、Show Bucket QuotaをNo(Exportサイズをストレージプールサイズとしてレポートします)またはYes(ExportサイズをBucketのハードクォータとしてレポートします)を選択します。今回はNoを選択しました。さらにRootSquashを必要に応じて設定してください。今回の例でno_root_squashをセットすると、スーパーユーザーの権限でアクセスが可能になります。

20190227_025.png

ポップアップが閉じます。

元のManage> File画面でSave ボタンをクリックします。

20190227_026.png

Manage >File画面に戻ったら、User/Group Mapping ボタンをクリックし、New User/Group Mappingボタンをクリックします。

20190227_027.png

New User/Group Mapping 画面の中で、NFSマウントに使用するUser、Groupを設定します。

ここでは、object_admin1をユーザーとしてUID 1000を割り当て、nfsgroupをグループとしてGID 1000を割り当てます。(今回使用しているxubuntu上のユーザーのuidとgidに合わせています)

20190227_028.png20190227_029.png

user、groupが設定できると、以下のようになります。

20190227_030.png

xubuntu のマウント先を/mnt/nfsとして作成しました。

20190227_031.png

xubuntu (ubuntu) 18.04を使用しましたが、DefaultがNFS V4をサポートしているため、mountコマンドにNFSv3をしていします(-o vers=3)。export pathは /ns1/bucket2 でしたから、以下のコマンドでNFSマウントを試みます。

mount -t nfs -o vers=3 192.168.40.100:/ns1/bucket2 /mnt/nfs

コマンド投入後、dfコマンドで見ると、うまくマウントできたようです。このマウント先にファイルを作成してみましょう。

20190227_032.png

SwiftやS3アクセスと同じ手順ですが、ファイルを作ってテキストデータを書き込んでみました。

20190227_033.png

NFSアクセスで書き込んだファイルですが、オブジェクトとしても確認してみましょう。それぞれ、SwiftとS3プロトコルでObjectをListしてみました。nfs.dataがListされています。

20190227_034.png

aws s3api get-objectコマンドでダウンロードしてみます。

20190227_035.png

さて、このデータを少しテキストデータを加えて、S3アクセスでアップロードしてみて、それぞれのプロトコルで反映されるか確認してみましょう。

20190227_036.png

どうやら、うまく反映されたことが確認できました。

 

最後に

大変長い資料になってしまいましたが、最後までお付き合いいただきありがとうございます。

 

基本的な機能としてECSはゲートウェイサーバーなどを必要とせずにファイルアクセス(今回はNFS、ほかにHDFS)、オブジェクトアクセスを同一bucketでサポートし、データの一貫性を保証することができることがお分かりいただけたと思います。もちろん、それぞれのアクセスでの制約上の相違が生じる場合もあります。また別の機会にそういった事象の説明もさせていただければと考えております。

 

ECSには今回ご紹介したCommunity Edition (VM版)のほかに、インターネット経由でECSにS3アクセスを提供しているお試し版のECSサービスであるTEST DRIVEを提供しています(無償)。次の機会には、利用方法をご紹介したいと思います。

 

また、今回はs3curlをご紹介できませんでした。s3curlを用いると、S3アクセスでユーザーが任意のメタデータの付与を行ったり、データアクセスを行うことが可能になります。近いうちにご紹介させていただきます。

 

Community Editionでは暗号化機能を提供していません。また、今回の構成はシングルノードで構成しましたので、Erasure Coding (12(data)+4(parity))構成でデータを書き込みしていません。しかし、Community Editionでも4ノード以上のVMをご用意いただければECを体験いただけます。リソースを必要としますので、もし環境がありましたらぜひトライしてみてください。

 

三田のCSCセンターでEX300の構成を今春半ばには実機を使用したデモをお見せできるようセットアップ作業を進めております。もし製品版をご覧になりたい方、より詳細を試してみたい方がいらっしゃいましたら、Dell EMCの弊社担当営業にお知らせください。

 

ではまたの機会にお目にかかれますことを願っております。

 

杉本 直之

デルEMC

UDS事業本部SE部

 

参考文献

ECS 3.2.x.x Administration Guide

https://support.emc.com/docu88135_ECS_3.2.x.x_Administration_Guide.pdf?language=en_US&source=Coveo

 

ECS 3.2.x.x Data Access Guide

https://support.emc.com/docu88137_ECS_3.2.x.x_Data_Access_Guide.pdf?language=en_US&source=Coveo

 

少し古い情報ですが、support.emc.comより提供されている日本語公開資料です。

 

ECS 3.1データ アクセス ガイド

https://support.emc.com/docu86295_ECS_3.1データ_アクセス_ガイドpdf?language=ja_JP&source=Coveo




レスポンスがありません。
イベントは見つかりませんでした!

Top