IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM...

28
IBM BigInsights 4.1 HDFS 暗号化検証レポート 2016 年 6 月 30 日 クリエーションライン株式会社

Transcript of IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM...

Page 1: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

IBM BigInsights 4.1

HDFS 暗号化検証レポート

2016 年 6 月 30 日

クリエーションライン株式会社

Page 2: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

1

1. 目次

2. 変更履歴 ........................................................................................................................... 3

3. はじめに .............................................................................................................................. 4

3.1. 暗号化の意義と本検証の観点 ....................................................................................... 4

4. 検証環境 ........................................................................................................................... 5

4.1. 検証環境 1: 機能検証環境 ......................................................................................... 5

4.1.1. 検証機スペック .......................................................................................................... 5

4.1.2. ネットワーク構成 ........................................................................................................ 6

4.1.3. ソフトウェア構成 ........................................................................................................ 7

4.2. 検証環境 2: 性能検証環境 ......................................................................................... 8

4.2.1. 検証機スペック .......................................................................................................... 8

4.2.2. ネットワーク構成 ........................................................................................................ 8

4.2.3. ソフトウェア構成 ...................................................................................................... 10

5. 検証の前提 ...................................................................................................................... 11

5.1. BigInsights の利用形態 ........................................................................................... 11

5.2. 検証方法と目的 ........................................................................................................ 11

検証1)暗号化適用検証 .............................................................................................. 11

検証2)性能検証 ........................................................................................................ 12

6. ベンチマーク検討................................................................................................................ 12

6.1. ベンチマークソフトウェア検討 .......................................................................................... 12

6.2. ベンチマーク構成検討.................................................................................................. 13

7. 暗号化解説および設定手順 ............................................................................................... 15

7.1. 非暗号化(デフォルト状態) ........................................................................................... 15

7.2. HDFS 暗号化 ........................................................................................................... 15

<HDFS暗号化手順> ................................................................................................. 15

7.3. LUKS 暗号化 ........................................................................................................... 19

<LUKS暗号化手順> ................................................................................................. 19

8. ベンチマーク・性能評価 ....................................................................................................... 22

8.1. DFSIO ベンチマークと暗号化による性能劣化傾向 .......................................................... 22

8.2. Hibench ベンチマークによる性能傾向 ........................................................................... 23

9. 議論と考察....................................................................................................................... 25

9.1. 適用難易度に関する考察 ........................................................................................... 25

9.2. 性能への影響 ............................................................................................................ 25

Page 3: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

2

9.3. ユーザビリティに関する考察 .......................................................................................... 25

10. まとめ ............................................................................................................................. 25

付録 .................................................................................................................................... 26

Page 4: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

3

2. 変更履歴

更新日 Ver 変更内容

2016/6/30 1.0 初版

Page 5: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

4

3. はじめに

本文書は IBM BigInsights 4.1(以下 BigInsights と呼称)の主要な構成要素である、Hadoop

Distributed filesystem(以下 HDFS)の暗号化による利点と、その影響を検討・検証することを目的と

する。

3.1. 暗号化の意義と本検証の観点

コンピュータにおける暗号化は、記録媒体上のデータ(静止データ)に適用する暗号化と、通信中のデ

ータ(移動データ)に適用する暗号化の 2 種類に大別され、今回検証する HDFS データは「静止データ

に対する暗号化」に属する。一般的に Hadoop システムに格納され分析されるデータは企業の売り上げ

データや顧客情報など、企業内に秘匿すべきデータが含まれることが多い。従ってこれらのデータを暗号化

することによって、ハードウェア廃棄の際にデータを削除し忘れたとしても、第三者にデータが漏えいする可能

性を低く抑えることが可能になる。

静止データに適用される暗号化の大きな利点は記録媒体(ハードディスク、テープ、CD、DVD など)

の盗難の際に、記録情報の読み出しを妨害する点である。具体的な適用例としてはノートパソコンやサー

バの盗難に対する耐性の確保、廃棄したハードディスクや DVD から他者がデータを抽出することに対する

記録データ抽出の阻止が想定される。ただし一般的にはこれら記録媒体は正当な利用者が使用している

際にはユーザの利便性を損なうことのない透過的なデータの読み出し、書き込みが期待される。

またハードディスクや DVD などの記録媒体上のデータは後述する移動データに比べ、個々のファイルは完

結したデータであることが多い。従って仮に暗号が解読されると、情報が完全に露呈する可能性が高い。従

って静止データに対する暗号は、移動データに対する暗号に比べて暗号化・復号化に対する難易度の高

いアルゴリズムが選択され、よりコンピューティング資源(処理能力、メモリ量)を消費する傾向にある。

移動データに適用する暗号の大きな利点は通信の秘匿を保ち、盗聴を妨害することにある。具体的な

適用例としては、通信経路におけるデータの盗聴に対する抑止が想定される。一般的な TCP/IP ネットワ

ークにおいて、多くの場合実データは複数の TCP パケットに分割されて送信されるため、一部のデータの盗

聴に成功しても完全なデータを復元できるわけではなく、静止データの読み出し、書き込み以上に即時性

を求められることや、対象デバイスが多様であることを踏まえ、暗号化アルゴリズムは比較的難易度の低い

ものが選択されることが多い。

Page 6: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

5

ただし暗号化による影響で処理性能が極端に低下する場合は、システム本来の目的であるところの適

宜適切なデータ処理が難しくなる場合があるため、暗号化に伴う処理の遅延はある程度現実的な範囲に

収まることが望ましいと言える。同様に適用前の運用方法が極端に変わったり非現実的な前提条件が求

められる場合も、暗号化の現実的な適用は難しいといえる。

従って本検証を行うにあたり以下の事項を観点として取り上げ、複数の暗号化方式において検討・検証

を行った。

● 暗号化そのものの適用難易度

● 暗号化によるユーザビリティへの影響

● 暗号化による性能への影響

4. 検証環境

本検証に際して 2 つの検証環境を構築し、それぞれ異なる観点の検証を行った。

4.1. 検証環境 1: 機能検証環境

本検証環境は比較的小規模な検証環境であり以下の用途に使用した。

● 暗号化適用難易度検証

● 暗号化手順の検証、手順確立

4.1.1. 検証機スペック

<ホストマシンスペック>

機種: Lenovo ThinkPad W540 x2 台

CPU: Intel Core i7-4710M (2.50GHz, 4core, 8thread)

メモリ: 32GB

HDD: 東芝 HG6 SSD 512GB x1 台

(型番: THNSNJ512GBSU)

ネットワーク: 1Gb Ethernet

ホスト OS: Windows 7 Professional 64bit

仮想化ソフトウェア: VMware Workstation 10.0.3

Page 7: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

6

<仮想マシンスペック(仮想マシン 1 台あたり)>

仮想 CPU: 2

仮想メモリ: 8GB

仮想 HDD: 50GB

仮想ネットワーク: ブリッジ接続

4.1.2. ネットワーク構成

<物理ネットワーク構成>

<論理ネットワーク構成>

Page 8: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

7

4.1.3. ソフトウェア構成

<バージョン情報>

OS: Red Hat Enterprise Linux 6.7 (64bit)

BigInsights: 4.1

<システム構成>

Node 仮想マシン(1) Ambari Server

BigInsight Cluster

仮想マシン(2) Node1

仮想マシン(3) Node2

仮想マシン(4) Node3

仮想マシン(5) Node4

仮想マシン(6) Node5

仮想マシン(7) Node6

IP Addr 192.168.20.1

11 192.168.20.10

0 192.168.20.10

1 192.168.20.1

02 192.168.20.1

04 192.168.20.1

05 192.168.20.10

6

Server Ambari Server NameNode SNameNode

DataNode DataNode DataNode DataNode DataNode DataNode

Metrics

Collector

Page 9: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

8

Metrics Monitor Metrics

Monitor Metrics

Monitor Metrics

Monitor Metrics

Monitor Metrics

Monitor

ZooKeeper

Server ZooKeeper

Server ZooKeeper

Server

Client HDFS Client HDFS Client HDFS Client HDFS Client

ZooKeeper

Client HDFS Client HDFS Client HDFS Client

4.2. 検証環境 2: 性能検証環境

本検証環境は、Cisco 社から検証用に貸し出された Cisco UCS Integrated Infrastructure for

Big Data v3, Performance Optimized を用いた中規模な検証環境であり、以下の用途に使用し

た。

● 暗号化による性能への影響

4.2.1. 検証機スペック

使用物理マシン数: 16

<マシンスペック(1 台あたり)>

CPU: Intel Xeon E5-2680 v3 (12core) x2socket

メモリ: 256GB

HDD(1): OS 領域

Intel SSD 320 120GB x2 基(RAID-1)

HDD(2): データ領域

900GB SAS 10,000RPM HDD x16 基

Avago MegaRAID-SAS RAIDcard

ネットワーク: Cisco VIC vNIC 10Gbps x1

4.2.2. ネットワーク構成

<物理ネットワーク構成>

Page 10: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

9

<論理ネットワーク構成>

Page 11: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

10

4.2.3. ソフトウェア構成

<バージョン情報>

OS: Red Hat Enterprise Linux 6.7 (64bit)

BigInsights: 4.1

<システム構成>

Node BigInsights Cluster

マシン(1) Node1

マシン(2) Node2

マシン(3)-(16) Node3-15

IP Addr 172.16.21.11 172.16.21.12 172.16.21.13-26

Server Ambari Server

NameNode SNameNode

DataNode DataNode DataNode

YARN ResourceManager

YARN NodeManager YARN NodeManager YARN NodeManager

Metrics Collector

Metrics Monitor Metrics Monitor Metrics Monitor

ZooKeeper Server ZooKeeper Server ZooKeeper Server

Client HDFS Client

ZooKeeper Client

Page 12: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

11

5. 検証の前提

5.1. BigInsights の利用形態

BigInsights の各コンポーネントは、BigInsights クラスタを構成しているマシンに直接ログイン(OS 認

証)して使用するもの、または、Knox を経由(LDAP 認証)して使用するものがある。本検証は HDFS を

直接操作するため、マシンに直接ログイン(OS 認証)する方法を行った。Kerberos 認証もサポートされて

いるが、本検証においては HDFS の暗号化とその影響を検証することが趣旨であり、実際の実用において

はどのようなユーザ認証方式でも利用できると考える。

5.2. 検証方法と目的

検証方法については以下のとおりとする。

検証1)暗号化適用検証

● 検証環境1を使用する

● HDFS を導入した BigInsights クラスタに以下の暗号化を施し、それぞれの適用難易度や、ユ

ーザが使用する際に考慮スべきことがあるかなどユーザビリティへの影響を検証する

○ 検証する暗号化方式は以下の 2 形式

Page 13: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

12

■ HDFS 暗号化

Hadoop が提供している HDFS 暗号化方式。暗号化/復号化を行うのは

Hadoop クライアントである(後述)

■ LUKS 暗号化

RHEL が正式サポートしている Device Mapper を使用した暗号化方式。暗

号化を行うのは OS(カーネルプロセスの kcryptod)

検証2)性能検証

● 検証環境2を使用する

● 検証1)で行った暗号化方式および、非暗号化状態の HDFS ボリュームに対してベンチマークを

行う。非暗号化状態に比べどの程度の性能劣化がみられるかを検証する

6. ベンチマーク検討

検証で使用するベンチマークソフトウェア、ベンチマーク構成について検討を行った。それぞれ以下に解説

する。

6.1. ベンチマークソフトウェア検討

(1) DFSIO

比較的標準的に使用されているベンチマーク。実運用環境における使用例が多いため、他のベ

ンチマークソフトウェアの実行結果と比べるための基準として使用されることが多い。

BigInsights では標準の hadoop パッケージに含まれている1。

(2) HiBench/DFSIO-e

DFSIO ベンチマークの結果出力はサマリの表示にとどまるため、状況によってより詳細なデータが

ほしい場合に情報が不足することがある。HiBench に含まれる”Enhanced DFSIO(DFSIO-

1 プログラムの実態は /usr/iop/4.1.0.0/hadoop-mapreduce/hadoop-mapreduce-

client-jobclient-2.7.1-IBM-8-tests.jar もしくは /usr/iop/4.1.0.0/hadoop-

mapreduce/hadoop-mapreduce-client-jobclient-tests.jar である。

Page 14: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

13

e)”は DFSIO と同様のテストを行い、より詳細な結果(例えばベンチマーク中のパフォーマンスの

推移)を出力するため、ベンチマーク結果比較の際により踏み込んだ分析が可能となる。

HiBench および DFSIO-e は標準の Hadoop ディストリビューションおよび BigInsights には

含まれていないが、GitHub でソースコードが公開されている。( https://github.com/intel-

hadoop/HiBench )

(3) LoadGenerator

HDFS のパフォーマンスに関して、DataNode に対するスループットとともに、NameNode の性

能に依存するファイルの作成、削除などの処理速度は、プログラムの特性によっては重要な指標に

なることがある。

LoadGenerator は NameNode に特に負荷を与えるベンチマークソフトウェアであり、HDFS

におけるファイルの生成速度などを観測することができる。前述の DFSIO が MapReduce ジョブ

を投入することで性能を観測するのに対して、LoadGenerator はシングルプログラム・マルチスレ

ッドで動作し、開始時に作成したファイル・ディレクトリのリストからランダムにパスを選定し、ファイルを

作成し、その作成速度を計測する。

LoadGenerator は Hadoop 標準ディストリビューションに含まれているが、BigInsights には

含まれていないようである。

ただし今回は検証の時間が限られていること、使用されるハードウェア構成が大量のファイルの作

成、削除に向いていないことから、ディスクのボトルネックによって暗号化有無における有意差を見

いだせないと思われることから、今回の検証対象からは除外した。

上記より、今回の検証においては、DFSIO、HiBench/DFSIO-e の 2 種類のベンチマークを行うこととし

た。

6.2. ベンチマーク構成検討

ベンチマークの実施に際して、極力ハードディスクがボトルネックにならないよう構成を検討した。具体的に

は以下のように構成を行った。

● 内蔵されているハードディスク 24 本を 8 本づつに分け、RAID-0 で構成した。RAID 構成には

MegaRAID-SAS 内蔵コントローラを使用した

● ファイルシステムには XFS を使用した。フォーマット時の各種オプション値はデフォルトのままとした

● ベンチマークの実施においては実施前にバッファキャッシュをクリアしてから実行した。実際のアプリケ

ーション利用の際には、書き込んだ直後のデータを読む場合があり、その際にはメインメモリ上のキャ

ッシュされたデータを読み込むため、必ずしも今回のベンチマーク結果に沿わない場合があるが、今

Page 15: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

14

回はベンチマークにおける I/O 性能劣化要因が暗号化の有無にあるかどうかを明らかにするため、

あえてバッファキャッシュを極力利用したい方針とした

● ベンチマークにおける 1 ファイルサイズは 64MB および 1024MB の2種類とした。ベンチマーク時

に各ノードに均等に I/O 負荷がかかるとともに、CPU、メモリを極力消費するようベンチマーク実行

時の実行ファイル数は適宜調整を行った。

● 計測ノード数は 4 台から開始し、4,8,12 台と増やしながら計測することとした。これには以下の

要素を見る意図がある

○ ノードが増えるごとに暗号化の負荷が増加するか

○ (暗号化の有無に関わらず)ノードが増えるごとにノードあたりの性能が変化するか

○ (暗号化の有無に関わらず)ノードが増えるごとにクラスタ全体の性能が改善するか。仮に

ノードあたりの性能が劣化した場合でも、所定のノード数によって目標性能を確保すること

が可能かどうかを確認する

上記検討事項を以下に図示する。

<ベンチマーク設定>

● DFSIO および Hibench

○ 測定ファイルサイズ(fileSize): 64MB および 1024MB

Page 16: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

15

○ ファイル数(nrFiles):

■ 4 ノード時: 100

■ 8 ノード時: 200

■ 12 ノード時: 300

7. 暗号化解説および設定手順

7.1. 非暗号化(デフォルト状態)

BigInsights 導入直後の HDFS には特に暗号化処理は行われていない。この状態でベンチマークを行

い、性能比較のための基準値取得した。

7.2. HDFS 暗号化

Hadoop では 2.3.0 より HDFS の透過的な暗号化機能が追加されており2、HDFS の中の任意のデ

ィレクトリ以下を暗号化することが可能になっている。暗号化および復号化はクライアント(MapReduce,

YARN ジョブの場合はジョブの末端プロセス)にて行われ、HDFS NameNode および DataNode そのも

のが暗号化/復号化を行うわけではない。暗号キー自体は別途構成する Key Management

Server(KMS)上に格納され、プログラム内で対象ディレクトリにアクセスする場合に必要に応じて取得され

る。また KMS の動作、管理は Hadoop クラスタの管理外で行うことができるため、暗号化キーの管理者

を Hadoop 管理者と別にすることができる。従って Hadoop クラスタと独立した場所に暗号化キーを保存

することができるため、Hadoop クラスタのディスクを廃棄するだけでデータの復元を抑止することができる。

(詳細解説3)

<HDFS暗号化手順>

<要素の関係>

2 https://issues.apache.org/jira/browse/HDFS-6134 3 http://www.slideshare.net/cloudera/hdfs-encryption

Page 17: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

16

HDFS 暗号化においては、Hadoop クラスタ外に暗号化/復号化に使用する共通鍵を保管し、クライアン

トの必要に応じて提供するための Key Management Server(KMS)を構築する。その後、HDFS の

設定で KMS と正しく通信するための設定を追加することで、HDFS 暗号化を利用することができるように

なる。

<KMS の構築と、HDFS 暗号化初期設定手順>

1. KMS を動作させるホスト上で

# mkdir -p /usr/kms

2. NameNode 上で

# scp /usr/iop/current/hadoop-client/mapreduce.tar.gz

root@KMSHOST:/usr/kms

3. KMS を動作させるホスト上で

# cd /usr/kms ; tar xvf mapreduce.tar.gz

4. # cd /usr/kms/hadoop/sbin ; ./kms.sh run

5. Ambari WebUI を開き、トップページから

[Services]-[HDFS]を選択する。サブペインから[Configs]を選択する

Page 18: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

17

6. [Adcanced]を選択

7. “Custom core-site”を開き、”Add Property…”をクリック

以下のように項目を追加する

Key: hadoop.security.key.provider.path

Value: kms://http@<KMSHOST>:16000/kms

追加後の状態は以下のようになる

8. 同様に”Custom hdfs-site”を開き、”Add Property…”をクリック

以下のように項目を追加する

Key: dfs.encryption.key.provider.uri

Value: kms://http@<KMSHOST>:16000/kms

追加後の状態は以下のようになる

Page 19: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

18

9. 画面上部の[Save]ボタンをクリックし、変更を保存

10. [Service Actions]から[Restart All]を選択し、HDFS サービスを再起動する

<HDFS の暗号化・解除・キーの削除>

1. HDFS クライアント上で暗号化キーを生成する

$ hadoop key create key1 -size 256

2. キーの情報を表示する

$ hadoop key list -metadata

Listing keys for KeyProvider:

KMSClientProvider[http://bi00.mkhome:16000/kms/v1/]

key1 : cipher: AES/CTR/NoPadding, length: 256,

description: null, created: Tue Jun 14 13:08:09 JST 2016,

version: 1, attributes: [key.acl.name=key1]

3. 暗号化対象のディレクトリを作成する

$ hdfs dfs -mkdir /securelogs

4. 対象ディレクトリを暗号ゾーンに追加する

$ hdfs crypto -createZone -keyName key1 -path /securelogs

5. 暗号化対象ディレクトリの一覧を取得

$ hdfs crypto -listZones

/securelogs key1

6. 暗号化を解除することはできない。対象ディレクトリを削除すると、自動的に暗号化対象リ

ストからも削除される

$ hdfs dfs -rm -r -skipTrash /securelogs

7. 暗号化キーを削除するには以下のコマンドを実行する

$ hadoop key delete key1

You are about to DELETE all versions of key key1 from

KeyProvider

KMSClientProvider[http://bi00.mkhome:16000/kms/v1/].

Continue? (Y or N) Y

Deleting key: key1 from KeyProvider:

KMSClientProvider[http://bi00.mkhome:16000/kms/v1/]

key1 has been successfully deleted.

KMSClientProvider[http://bi00.mkhome:16000/kms/v1/] has

been updated.

Page 20: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

19

7.3. LUKS 暗号化

LUKS(Linux Unified Key Setup-on-disk-format)暗号化は Red Hat Enterprise Linux が

標準的にサポートしているブロックデバイス暗号化手法である。ブロックデバイス全体を暗号化するため上位

のファイルシステムやアプリケーションを問わない暗号化が可能である。暗号化は複数設定できるキーフレー

ズ(パスフレーズ)によって行われる。従ってデバイス暗号化時にパスフレーズを使って暗号化し、別のパスフレ

ーズを使って起動時に自動的に暗号化デバイスをオープンし、マウントするといった使用方法が可能である。

LUKS は Linux 標準の Device Mapper の仕組みを使ってデバイスを管理する。

<LUKS暗号化手順>

以下に既存の BigInsights の HDFS ボリュームを暗号化する手順について記述する。

例では全てのホストの/dev/sdd を暗号化対象のディスクとして使用している。

<移行元>は/hadoop/hdfs/data、暗号化デバイスのマウント先(=<移行先>)は、

/hadoop/hdfs/cryptdata としているので、実際の適用に当たっては適宜読み替え、変更するこ

と。

1. 暗号化対象デバイス(/dev/sdd)が HDFS 含め既存のアプリケーションで使用されていないこと

を確認する

2. # umount /dev/sdd

3. # cryptsetup luksFormat /dev/sdd

パスフレーズを指定する(A)

4. # cryptsetup luksOpen /dev/sdd crypthdfs

パスフレーズ(A)を入力する

成功すると、/dev/mapper/crypthdfs が作成される

5. # mkfs -t ext4 /dev/mapper/crypthdfs

6. # mkdir -p /hadoop/hdfs/cryptdata

7. # mount /dev/mapper/crypthdfs /hadoop/hdfs/cryptdata

8. 続いて起動時に自動的に暗号化デバイスをオープンし、マウントするように設定する

9. 暗号化キーファイルを作成する(起動時の自動マウント用)

# dd if=/dev/urandom of=/boot/luks_key_sdd bs=1 count=1024

# chmod 0600 /boot/luks_key_sdd

10. # cryptsetup luksAddKey /dev/sdd /boot/luks_key_sdd

パスフレーズ(A)をタイプ

Page 21: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

20

11. /etc/crypttab を編集

[cryptsetup デバイス名] [/dev 名] [キーファイルへのパス] [LUKS 拡張が必要である旨]

実際には以下のように記述する

crypthdfs /dev/sdd /boot/luks_key_sdd luks,timeout=5

12. /etc/init.d/mountcryptfs を作成

https://bitbucket.org/snippets/m-kiuchi/d6a6A

(以下はコピペするとダブルクオートが化けるので上記のスニペットを推奨)

#!/bin/bash

# chkconfig: 345 50 40

# description: mount crypted HDFS devices

case “$1” in

start)

mount /dev/mapper/crypthdfs /hadoop/hdfs/cryptdata

;;

stop)

umount /hadoop/hdfs/cryptdata

;;

*)

echo $”Usage: $0 {start|stop}”

exit 2

esac

【注意】/etc/fstab への記述によるマウントは安定的な動作を行わない場合があるため、推

奨できない。また/etc/rc.local への記述も BigInsights の起動と連動できないことから避

けること。

13. # chmod +x /etc/init.d/mountcryptfs

14. # chkconfig --add /etc/init.d/mountcryptfs

15. テストを行う

必ず stop->start の順にテストする

# service mountcryptfs stop

暗号化デバイスがアンマウントされていることを確認する

# service mountcryptfs start

start ののちに暗号化デバイスがマウントされていることを確認する

16. この時点でデータ移行を行う

ambari で、[Service]-[HDFS]を選択

Page 22: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

21

[Actions]-[Stop]を選択し、HDFS サービスを停止する

17. データ移行を行う

# cd <移行元>

# tar cf - . ; ( cd <移行先> ; tar xvf - )

18. ambari で、[Service]-[HDFS]を選択

Config タブの、[DataNode]-”DataNode directories”を移行後のディレクトリに修正し、

[Save]ボタンを押下

19. 各ノードを再起動する

再起動後暗号化ファイルシステムが/hadoop/hdfs/cryptdata にマウントされていることを

確認する

Page 23: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

22

20. ambari で、[Service]-[HDFS]を選択

[Actions]-[Start]を選択し、HDFS サービスをスタートする

8. ベンチマーク・性能評価

8.1. DFSIO ベンチマークと暗号化による性能劣化傾向

暗号化による性能の劣化については、特に書き込み時に観測することができた。以下はそれぞれの暗号

化手法を適用した場合の DFSIO ベンチマークにおける読み込み性能および書き込み性能を図示してい

る。

Page 24: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

23

ここで HDFS 暗号化による性能劣化がほぼ見受けられないことに注目されたい。HDFS 暗号化適用時

における性能傾向は非暗号化時における性能傾向とほぼ同じであり、HDFS 暗号化に際して統計的、

体感的な性能劣化がなく、暗号化に関するオーバーヘッドが無視できるほど軽微であることを示唆してい

る。とはいうものの、LUKS 暗号化においてもファイル読み込み時における性能は非暗号化時とほぼ同等の

傾向を示しており、実際の適用にあたってファイルの読み込みがほとんどである場合は LUKS 暗号化も十

分適用の余地があると考えられる。

また暗号化の有無によらず、クラスタノードを増やし、テストファイル数を増加しても、ノード当たりの書き込

み性能は同等か、劣化している。ただしノード数が増えたことによりクラスタ全体の読み込み、書き込み性

能はいずれの手法でも向上していることを確認した。全体的には書き込み時における性能の劣化が見受

けられるが、これは読み込み時におけるメモリキャッシュの効果によるものと思われる。ただし LUKS 暗号化

における 1024MB/file 書き込み時においては顕著な性能劣化を観測した。

上記の結果から、暗号化による性能劣化は全般的には軽微であるが、LUKS 暗号化を使用し地得る

場合、特定のアクセスにおいては特に書き込み時において大きな性能劣化の可能性があるということができ

る。

8.2. Hibench ベンチマークによる性能傾向

続いて Hibench/DFSIO-e ベンチマークにおける性能傾向を以下に図示する。

Page 25: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

24

Hibench/DFSIO-e においても、先に記述した DFSIO ベンチマークと同様の傾向を示している。読み

込みにおいては暗号化手法によらず性能劣化はほぼ見受けられないのに対して、書き込みにおいては

30%程度の性能劣化が見受けられる。ただし、クラスタ全体の性能はノード数の増加とともに向上する傾

向にある。

Page 26: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

25

9. 議論と考察

9.1. 適用難易度に関する考察

HDFS 暗号化の適用手順は LUKS 暗号化の適用手順よりも簡便であり、非暗号化領域と暗号化領

域を混在して運用することができること、暗号化領域の削除が可能であることから、適用難易度が低いと

考えることができる。

ただし従来の一般的な Linux 管理に慣れた管理者にとっては HDFS 独自の暗号管理手法には抵抗

があるかもしれない。運用にあたっては HDFS クラスタ独自の管理手法に習熟するためのトレーニングが必

要になるため、若干負担が増えることになると考える。

9.2. 性能への影響

前章に記述したとおり、HDFS 暗号化は非暗号化に比べた性能劣化がほとんど見受けられない。これは

HDFS 暗号化と LUKS 暗号化の実装レイヤの差異に起因するものと考えられる。ただし HDFS 暗号化

においては、暗号強度の選択幅が LUKS 暗号化に比べて狭いため、環境によっては適用できない可能性

があることは留意すべきである。

9.3. ユーザビリティに関する考察

いずれの暗号化手法においても、ユーザは従来の利用方法、プログラムの変更などの対応は不要であ

り、ユーザビリティは高いと考えられる。

10. まとめ

一般的に Hadoop システムに格納され分析されるデータは企業の売り上げデータや顧客情報など、企

業内に秘匿すべきデータが含まれることが多い。従ってこれらのデータを暗号化することによって、ハードウェア

廃棄の際に第三者にデータが漏えいする可能性を低く抑えることが可能になる。

考えうる情報漏えいの機会の中で最も高いものは、Hadoop システム廃棄の際に廃棄過程の中で起こ

りうる情報の漏洩であり、HDFS 暗号化は暗号鍵を Hadoop クラスタと分けて管理することができるため、

漏洩の可能性をより低減させることが可能であると考える。ただし、適切に鍵と Hadoop システムを分離す

Page 27: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

26

るように設計、運用されなければならず、Hadoop システム内に暗号鍵管理サーバ(Key Management

Server, KMS)を共存させた場合の漏洩リスクは LUKS 暗号化と同等となることに注意されたい。

懸念された性能への影響に関しても、非暗号化時と遜色のない性能が期待できることを確認した。

HDFS 暗号化の構築・管理にかかる難易度が低いことを鑑み、システム管理者は積極的な HDFS 暗号

化を検討すべきであると考える。

付録

本検証に当たる関連資料を以下に記述する。

1. ベンチマーク実行スクリプト

https://bitbucket.org/creationline/biginsight-eval

2. Hibench 構築手順書

<別紙>

3. ベンチマーク測定結果一覧

<別紙>

Page 28: IBM BigInsights 4.1 HDFS 暗号化検証レポート - Cisco...4 3. はじめに 本文書はIBM BigInsights 4.1(以下BigInsightsと呼称)の主要な構成要素である、Hadoop

27