Comments
Description
Transcript
IBM BigInsights 4.1 - HDFS暗号化検証レポート
IBM BigInsights 4.1 HDFS 暗号化検証レポート 2016 年 6 月 30 日 クリエーションライン株式会社 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 1 9.3. ユーザビリティに関する考察 .......................................................................................... 25 10. まとめ ............................................................................................................................. 25 付録 .................................................................................................................................... 26 2 2. 変更履歴 更新日 Ver 変更内容 2016/6/30 1.0 初版 3 3. はじめに 本文書は IBM BigInsights 4.1(以下 BigInsights と呼称)の主要な構成要素である、Hadoop Distributed filesystem(以下 HDFS)の暗号化による利点と、その影響を検討・検証することを目的と する。 3.1. 暗号化の意義と本検証の観点 コンピュータにおける暗号化は、記録媒体上のデータ(静止データ)に適用する暗号化と、通信中のデ ータ(移動データ)に適用する暗号化の 2 種類に大別され、今回検証する HDFS データは「静止データ に対する暗号化」に属する。一般的に Hadoop システムに格納され分析されるデータは企業の売り上げ データや顧客情報など、企業内に秘匿すべきデータが含まれることが多い。従ってこれらのデータを暗号化 することによって、ハードウェア廃棄の際にデータを削除し忘れたとしても、第三者にデータが漏えいする可能 性を低く抑えることが可能になる。 静止データに適用される暗号化の大きな利点は記録媒体(ハードディスク、テープ、CD、DVD など) の盗難の際に、記録情報の読み出しを妨害する点である。具体的な適用例としてはノートパソコンやサー バの盗難に対する耐性の確保、廃棄したハードディスクや DVD から他者がデータを抽出することに対する 記録データ抽出の阻止が想定される。ただし一般的にはこれら記録媒体は正当な利用者が使用している 際にはユーザの利便性を損なうことのない透過的なデータの読み出し、書き込みが期待される。 またハードディスクや DVD などの記録媒体上のデータは後述する移動データに比べ、個々のファイルは完 結したデータであることが多い。従って仮に暗号が解読されると、情報が完全に露呈する可能性が高い。従 って静止データに対する暗号は、移動データに対する暗号に比べて暗号化・復号化に対する難易度の高 いアルゴリズムが選択され、よりコンピューティング資源(処理能力、メモリ量)を消費する傾向にある。 移動データに適用する暗号の大きな利点は通信の秘匿を保ち、盗聴を妨害することにある。具体的な 適用例としては、通信経路におけるデータの盗聴に対する抑止が想定される。一般的な TCP/IP ネットワ ークにおいて、多くの場合実データは複数の TCP パケットに分割されて送信されるため、一部のデータの盗 聴に成功しても完全なデータを復元できるわけではなく、静止データの読み出し、書き込み以上に即時性 を求められることや、対象デバイスが多様であることを踏まえ、暗号化アルゴリズムは比較的難易度の低い ものが選択されることが多い。 4 ただし暗号化による影響で処理性能が極端に低下する場合は、システム本来の目的であるところの適 宜適切なデータ処理が難しくなる場合があるため、暗号化に伴う処理の遅延はある程度現実的な範囲に 収まることが望ましいと言える。同様に適用前の運用方法が極端に変わったり非現実的な前提条件が求 められる場合も、暗号化の現実的な適用は難しいといえる。 従って本検証を行うにあたり以下の事項を観点として取り上げ、複数の暗号化方式において検討・検証 を行った。 ● 暗号化そのものの適用難易度 ● 暗号化によるユーザビリティへの影響 ● 暗号化による性能への影響 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 5 <仮想マシンスペック(仮想マシン 1 台あたり)> 仮想 CPU: 2 仮想メモリ: 8GB 仮想 HDD: 50GB 仮想ネットワーク: ブリッジ接続 4.1.2. ネットワーク構成 <物理ネットワーク構成> <論理ネットワーク構成> 6 4.1.3. ソフトウェア構成 <バージョン情報> OS: Red Hat Enterprise Linux 6.7 (64bit) BigInsights: 4.1 <システム構成> Node 仮想マシン(1) BigInsight Cluster Ambari Server IP Addr Server 仮想マシン(2) 仮想マシン(3) 仮想マシン(4) 仮想マシン(5) 仮想マシン(6) 仮想マシン(7) Node1 Node2 Node3 Node4 Node5 Node6 192.168.20.1 192.168.20.10 192.168.20.10 192.168.20.1 192.168.20.1 192.168.20.1 192.168.20.10 11 0 1 02 04 05 6 Ambari Server NameNode SNameNode DataNode DataNode DataNode DataNode DataNode DataNode Metrics Collector 7 Metrics Monitor Client Metrics Metrics Metrics Metrics Metrics Monitor Monitor Monitor Monitor Monitor ZooKeeper ZooKeeper ZooKeeper Server Server Server HDFS Client HDFS Client HDFS Client HDFS Client ZooKeeper HDFS Client HDFS Client HDFS Client Client 4.2. 検証環境 2: 性能検証環境 本検証環境は中規模な検証環境であり以下の用途に使用した。 ● 暗号化による性能への影響 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. ネットワーク構成 <物理ネットワーク構成> 8 <論理ネットワーク構成> 9 4.2.3. ソフトウェア構成 <バージョン情報> OS: Red Hat Enterprise Linux 6.7 (64bit) BigInsights: 4.1 <システム構成> Node BigInsights Cluster マシン(1) マシン(2) マシン(3)-(16) Node1 Node2 Node3-15 IP Addr 172.16.21.11 Server Ambari Server 172.16.21.12 NameNode SNameNode DataNode DataNode 172.16.21.13-26 DataNode YARN ResourceManager YARN NodeManager YARN NodeManager YARN NodeManager Metrics Collector Client Metrics Monitor Metrics Monitor Metrics Monitor ZooKeeper Server ZooKeeper Server ZooKeeper Server HDFS Client ZooKeeper Client 10 5. 検証の前提 5.1. BigInsights の利用形態 BigInsights の各コンポーネントは、BigInsights クラスタを構成しているマシンに直接ログイン(OS 認 証)して使用するもの、または、Knox を経由(LDAP 認証)して使用するものがある。本検証は HDFS を 直接操作するため、マシンに直接ログイン(OS 認証)する方法を行った。Kerberos 認証もサポートされて いるが、本検証においては HDFS の暗号化とその影響を検証することが趣旨であり、実際の実用において はどのようなユーザ認証方式でも利用できると考える。 5.2. 検証方法と目的 検証方法については以下のとおりとする。 検証1)暗号化適用検証 ● 検証環境1を使用する ● HDFS を導入した BigInsights クラスタに以下の暗号化を施し、それぞれの適用難易度や、ユ ーザが使用する際に考慮スべきことがあるかなどユーザビリティへの影響を検証する ○ 検証する暗号化方式は以下の 2 形式 11 ■ 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/hadoopmapreduce/hadoop-mapreduce-client-jobclient-tests.jar である。 12 e)”は DFSIO と同様のテストを行い、より詳細な結果(例えばベンチマーク中のパフォーマンスの 推移)を出力するため、ベンチマーク結果比較の際により踏み込んだ分析が可能となる。 HiBench および DFSIO-e は標準の Hadoop ディストリビューションおよび BigInsights には 含まれていないが、GitHub でソースコードが公開されている。( https://github.com/intelhadoop/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 を使用した。フォーマット時の各種オプション値はデフォルトのままとした ● ベンチマークの実施においては実施前にバッファキャッシュをクリアしてから実行した。実際のアプリケ ーション利用の際には、書き込んだ直後のデータを読む場合があり、その際にはメインメモリ上のキャ ッシュされたデータを読み込むため、必ずしも今回のベンチマーク結果に沿わない場合があるが、今 13 回はベンチマークにおける I/O 性能劣化要因が暗号化の有無にあるかどうかを明らかにするため、 あえてバッファキャッシュを極力利用したい方針とした ● ベンチマークにおける 1 ファイルサイズは 64MB および 1024MB の2種類とした。ベンチマーク時 に各ノードに均等に I/O 負荷がかかるとともに、CPU、メモリを極力消費するようベンチマーク実行 時の実行ファイル数は適宜調整を行った。 ● 計測ノード数は 4 台から開始し、4,8,12 台と増やしながら計測することとした。これには以下の 要素を見る意図がある ○ ノードが増えるごとに暗号化の負荷が増加するか ○ (暗号化の有無に関わらず)ノードが増えるごとにノードあたりの性能が変化するか ○ (暗号化の有無に関わらず)ノードが増えるごとにクラスタ全体の性能が改善するか。仮に ノードあたりの性能が劣化した場合でも、所定のノード数によって目標性能を確保すること が可能かどうかを確認する 上記検討事項を以下に図示する。 <ベンチマーク設定> ● DFSIO および Hibench ○ 測定ファイルサイズ(fileSize): 64MB および 1024MB 14 ○ ファイル数(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 3 https://issues.apache.org/jira/browse/HDFS-6134 http://www.slideshare.net/cloudera/hdfs-encryption 15 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]を選択する 16 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 追加後の状態は以下のようになる 17 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. 18 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)をタイプ 19 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]を選択 20 [Actions]-[Stop]を選択し、HDFS サービスを停止する 17. データ移行を行う # cd <移行元> # tar cf - . ; ( cd <移行先> ; tar xvf - ) 18. ambari で、[Service]-[HDFS]を選択 Config タブの、[DataNode]-”DataNode directories”を移行後のディレクトリに修正し、 [Save]ボタンを押下 19. 各ノードを再起動する 再起動後暗号化ファイルシステムが/hadoop/hdfs/cryptdata にマウントされていることを 確認する 21 20. ambari で、[Service]-[HDFS]を選択 [Actions]-[Start]を選択し、HDFS サービスをスタートする 8. ベンチマーク・性能評価 8.1. DFSIO ベンチマークと暗号化による性能劣化傾向 暗号化による性能の劣化については、特に書き込み時に観測することができた。以下はそれぞれの暗号 化手法を適用した場合の DFSIO ベンチマークにおける読み込み性能および書き込み性能を図示してい る。 22 ここで HDFS 暗号化による性能劣化がほぼ見受けられないことに注目されたい。HDFS 暗号化適用時 における性能傾向は非暗号化時における性能傾向とほぼ同じであり、HDFS 暗号化に際して統計的、 体感的な性能劣化がなく、暗号化に関するオーバーヘッドが無視できるほど軽微であることを示唆してい る。とはいうものの、LUKS 暗号化においてもファイル読み込み時における性能は非暗号化時とほぼ同等の 傾向を示しており、実際の適用にあたってファイルの読み込みがほとんどである場合は LUKS 暗号化も十 分適用の余地があると考えられる。 また暗号化の有無によらず、クラスタノードを増やし、テストファイル数を増加しても、ノード当たりの書き込 み性能は同等か、劣化している。ただしノード数が増えたことによりクラスタ全体の読み込み、書き込み性 能はいずれの手法でも向上していることを確認した。全体的には書き込み時における性能の劣化が見受 けられるが、これは読み込み時におけるメモリキャッシュの効果によるものと思われる。ただし LUKS 暗号化 における 1024MB/file 書き込み時においては顕著な性能劣化を観測した。 上記の結果から、暗号化による性能劣化は全般的には軽微であるが、LUKS 暗号化を使用し地得る 場合、特定のアクセスにおいては特に書き込み時において大きな性能劣化の可能性があるということができ る。 8.2. Hibench ベンチマークによる性能傾向 続いて Hibench/DFSIO-e ベンチマークにおける性能傾向を以下に図示する。 23 Hibench/DFSIO-e においても、先に記述した DFSIO ベンチマークと同様の傾向を示している。読み 込みにおいては暗号化手法によらず性能劣化はほぼ見受けられないのに対して、書き込みにおいては 30%程度の性能劣化が見受けられる。ただし、クラスタ全体の性能はノード数の増加とともに向上する傾 向にある。 24 9. 議論と考察 9.1. 適用難易度に関する考察 HDFS 暗号化の適用手順は LUKS 暗号化の適用手順よりも簡便であり、非暗号化領域と暗号化領 域を混在して運用することができること、暗号化領域の削除が可能であることから、適用難易度が低いと 考えることができる。 ただし従来の一般的な Linux 管理に慣れた管理者にとっては HDFS 独自の暗号管理手法には抵抗 があるかもしれない。運用にあたっては HDFS クラスタ独自の管理手法に習熟するためのトレーニングが必 要になるため、若干負担が増えることになると考える。 9.2. 性能への影響 前章に記述したとおり、HDFS 暗号化は非暗号化に比べた性能劣化がほとんど見受けられない。これは HDFS 暗号化と LUKS 暗号化の実装レイヤの差異に起因するものと考えられる。ただし HDFS 暗号化 においては、暗号強度の選択幅が LUKS 暗号化に比べて狭いため、環境によっては適用できない可能性 があることは留意すべきである。 9.3. ユーザビリティに関する考察 いずれの暗号化手法においても、ユーザは従来の利用方法、プログラムの変更などの対応は不要であ り、ユーザビリティは高いと考えられる。 10. まとめ 一般的に Hadoop システムに格納され分析されるデータは企業の売り上げデータや顧客情報など、企 業内に秘匿すべきデータが含まれることが多い。従ってこれらのデータを暗号化することによって、ハードウェア 廃棄の際に第三者にデータが漏えいする可能性を低く抑えることが可能になる。 考えうる情報漏えいの機会の中で最も高いものは、Hadoop システム廃棄の際に廃棄過程の中で起こ りうる情報の漏洩であり、HDFS 暗号化は暗号鍵を Hadoop クラスタと分けて管理することができるため、 漏洩の可能性をより低減させることが可能であると考える。ただし、適切に鍵と Hadoop システムを分離す 25 るように設計、運用されなければならず、Hadoop システム内に暗号鍵管理サーバ(Key Management Server, KMS)を共存させた場合の漏洩リスクは LUKS 暗号化と同等となることに注意されたい。 懸念された性能への影響に関しても、非暗号化時と遜色のない性能が期待できることを確認した。 HDFS 暗号化の構築・管理にかかる難易度が低いことを鑑み、システム管理者は積極的な HDFS 暗号 化を検討すべきであると考える。 付録 本検証に当たる関連資料を以下に記述する。 1. ベンチマーク実行スクリプト https://bitbucket.org/creationline/biginsight-eval 2. Hibench 構築手順書 <別紙> 3. ベンチマーク測定結果一覧 <別紙> 26 27