Red Hat Enterprise Linux 6.4 for IBM POWER
導入ガイド
〜
VIOS 環境編 〜
2014年3月
@ 2014 IBM Corporation 2
•© IBM Corporation 2014. All Rights Reserved.•ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の 見解を反映したものです。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したもので はなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のま ま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連 によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス 交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図 したものでもなく、またそのような結果を生むものでもありません。 •本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示する ものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつ でも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含ま れている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したもので も、またそのような結果を生むものでもありません。パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいて います。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレー ジ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと 同様の結果を得られると確約するものではありません。 •記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたもの です。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 •IBM、IBM ロゴ、ibm.com、[当該情報に関連し商標リスト中に掲載されたIBMブランド、製品名称があれば追加する]は、世界の多くの国で登録された International Business Machines Corporationの商標です。
•他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 •現時点でのIBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
•Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。•IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標です。 •インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium
はIntel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。
•Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。
•Microsoft, Windows, Windows NT およびWindowsロゴはMicrosoft Corporationの米国およびその他の国における商標です。 •ITILは英国The Minister for the Cabinet Officeの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。 •UNIXはThe Open Groupの米国およびその他の国における登録商標です。
•Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使用しています。 •JavaおよびすべてのJava関連の商標およびロゴはOracleやその関連会社の米国およびその他の国における商標または登録商標です。
更新履歴
@ 2014 IBM Corporation 4
目次
このガイドでは、Power Systems サーバーに Red Hat Enterprise Linux 6.4 for IBM POWER(以降、RHEL6.4) を導入する手順をご紹介します。
操作端末にVNC Viewerを導入しておいてください。
また、RHEL6.4の導入の事前準備作業として、Power Systems のI/O仮想化機能で あるVirtual I/O Server(以降、VIOS) へ RHEL6.4 DVDメディアを登録します。
VIOSのない環境にRHEL6.4を導入する場合は、この登録手順1.は不要です。 1. VIOSへのメディアの登録 2. VNCを使ったRHEL6.4の導入 3. 起動デバイスの順序設定 VIOS LPAR1 PE VE SEA VE 2 2 VirtualSwitch LPAR2 VFC PFC 3 3 vFC RHEL6.4 IP:10.197.1.2
@ 2014 IBM Corporation 6
HMCからVIOSへメディアの設定
ハードウェア管理コンソール(以降、HMC)からVIOS上にメディアを登録することが可能です。 これにより、ISOファイルを用いたインストールが可能となり、物理的なメディアの入れ替えといった作業 も必要がなくなります。今回はRHEL6.4のメディアと、運用ツールが含まれるIBM Installation Toolkit(以降、IBM IT)のISOファ イルを登録します。
• RHEL6.4 のメディアイメージファイルを登録
⇒ 事前にDVDメディアの準備が必要になります。 • IBM Installation Toolkit のISOファイルを登録
⇒ ISOファイルを事前にVIOS上に置いておく必要があります。 登録するメディア
RHEL6.4 CDメディアの登録
対象のサーバーを選択肢、”構成”→”仮想リソース”→”仮想ストレージ管理” を選択します。 作成したVIOSが候補に出ますので”照会”を選択します。
@ 2014 IBM Corporation 8
RHEL6.4 CDメディアの登録
“光ディスク装置”のタブを選択し、仮想光メディアの”選択可能なアクション”から”メディアの追加” を選 びます。開かれたウィンドウにて、物理光ディスクからのインポートの場合は以下のように作成します。
IBM Installation Toolkit for PowerLinux
の
ISO
の登録
$ ls IBM_Installation_Toolkit_55.iso ioscli.log config tivoli $ pwd /home/padmin「メディアのアップロード」を選択し、ファイル選択でVIOS上のIBM Installation Toolkit for PowerLinux のISOファイルの絶対パスを記入し、「了解」をクリックします。
@ 2014 IBM Corporation 10
登録したメディアを
LPARに割り当て
割り当てたいメディアを選択し、”選択アクション”から”パーティション割り当ての変更”を選択します。 ウィンドウが開きますので、割り当て先のLPARを選択し、”了解”を押します。
@ 2014 IBM Corporation 12
コンソールの選択
SMS メニューの選択
@ 2014 IBM Corporation 14
メイン・メニュー
ブート・デバイスの選択
@ 2014 IBM Corporation 16
デバイス・タイプの選択
メディア・タイプの選択
VIOSに登録したISOメディアを使う場合、仮想光学ドライブはSCSIデバイスであるため、 ここでは、「1」を入力し、「Enter」を押します。
VIOSのない環境で、光学ドライブにセットしたDVDから導入する場合は、 「9. List All Devices」を選択します。
@ 2014 IBM Corporation 18
メディア・アダプタの選択
デバイスの選択
@ 2014 IBM Corporation 20
タスクの選択
SMSの終了
@ 2014 IBM Corporation 22
RHEL6のインストーラの起動
今回はVNCを用いてGUIでRHEL6.4をインストールを行います。
メディア・テスト
@ 2014 IBM Corporation 24
VNC環境の確立
VNCから接続を実施
@ 2014 IBM Corporation 26
RHEL6.4-PPCのインストール作業② -
言語設定
Japaneseを選択
@ 2014 IBM Corporation 28
@ 2014 IBM Corporation 30
@ 2014 IBM Corporation 32
RHEL6.4-PPCのインストール作業⑧ -
パーティション設定
https://access.redhat.com/site/documentation/ja-JP/ Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ s2-diskpartrecommend-ppc.html
PowerLinuxでは”PPC PReP Boot”のパーティ ションを作成する必要があります。こちらのパー ティションについてはRed Hat 社が出している以 下のリンク先のRHEL6 インストールガイドに記 載がございます。 PPC PReP Boot パーティション は4~8Mの間にし、10M は超え ないようにしてください
@ 2014 IBM Corporation 34
@ 2014 IBM Corporation 36
@ 2014 IBM Corporation 38
ブート・デバイスの順序の構成
インストール先のHDDからブートするように、ブート・デバイスの順序を設定します。 ここでは、「5」を入力し、「Enter」を押します。 次に、「2」を入力し、「Enter」を押します。1番目のデバイス・タイプの選択
ここでは、「1」を入力し、「Enter」を押します。 次に、「5」を入力し、「Enter」を押します。
@ 2014 IBM Corporation 40
メディア・タイプとアダプターの選択
ここでは、「1」を入力し、「Enter」を押します。
尚、VIOSのない環境では、「10.List All Devices」を選択します。
デバイスとタスクの選択
ここでは、「1」を入力し、「Enter」を押します。
@ 2014 IBM Corporation 42
ブート順序の確認と
SMSの終了
ここで、「X」を押します。
@ 2014 IBM Corporation 44
ログイン
ここでは、「root」を入力し、「Enter」を押します。
@ 2014 IBM Corporation 46
接続した仮想光メディアの確認
HMCで接続した仮想光メディア、もしくは光学ドライブにセットしたDVDが認識されている
ことを確認します。
メディアが認識されていた場合、任意のディレクトリにマウントを行います。
RHEL6.4のメディアについては後ほど、yumレポジトリの参照先に指定します。
[root@RHEL64-PPC-00 ~]# ls /dev/sr sr0 sr1[root@RHEL64-PPC-00 ~]# mount /dev/sr0 /media/IBMIT
[root@RHEL64-PPC-00 ~]# mount /dev/sr1 /media/RHEL64-PPC/ [root@RHEL64-PPC-00 ~]# mount
~ 一部省略 ~
/dev/sr0 on /media/IBMIT type iso9660 (ro)
ネットワークの起動と確認
ここでは、下記のコマンドを実行しネットワークを有効化します。 # ifup eth0
有効化されたのを確認するため下記のコマンドを実行します。 # ifconfig eth0
@ 2014 IBM Corporation 48
yum レポジトリの作成
[root@RHEL64-PPC-00 ~]# cat /etc/ yum.repos.d/rhel64-ppc.repo [RHEL6.4-PPC] name=rhel64-ppc baseurl=file:///media/RHEL64-PPC/Server enabled=1 gpgcheck=0 yumレポジトリを作成します。先ほどRHEL6.4のメディアマウントしたディレクトリを指定します。
IBM Installation Toolkit
for PowerLinux
@ 2014 IBM Corporation 50
IBM Installation Toolkit for PowerLinux (IBMIT)
で実施可能なこと
§ スタンドアローンまたは、仮想化環境のPower Systems へLinux の導入と構成
が可能
§ Linux の新規導入時には
Service and productivity tools
もセットで導入(既存環
境に後から導入することも可能)
※DLPAR を使うためにはService and productivity tools が必要
※Service and productivity tools によりH/W エラーログのファイルへの出力が可能
§ Power Systems のファームウェアのアップデートが可能
§ PowerLinux システムの保守時にrescue ブート用のメディアとして利用が可能
§ PowerLinux の導入に必要なマニュアルを同梱
§ IA Linux からPowerLinux へLAMP*スタックの構成とデータの移行ツールを提供
IBM Installation Toolkit (IBMIT) & Service and productivity Tools
導入手順
サーバを起動 IBMITをダウンロード 起動方法を指定 IBMITから サーバーをブート Linuxディストリビューション・ メディアの位置を指定 Linuxをインストール* 完了 IBMITをダウンロード IBMITをインストール 完了 IBMITは 導入済み? 完了 Linuxは 導入済み?はい
はい
いいえ
いいえ
この部分の手順詳細を後述@ 2014 IBM Corporation 52
パッケージ 説明 Platform Enablement
Library (librtas)
librtas パッケージは、ファームウェアが提供する機能を利用するためのライブラリです。これによって アプリケーションからファームウェアの機能を利用できます。他のService and productivity tools の パッケージにも必要です。 SRC (src) システム上のサービス・デーモンを管理するための機能です。サービス・デーモンについて、定義、定 義解除、開始、停止、状況の照会、およびトレースの制御を行うための標準コマンド・インターフェー スを備えています。 RSCT Core Utils (rsct.core.utils) RSCT Core (rsct.core)
システムをモニターおよび管理するために必要な Resource Monitoring and Control (RMC)機能お
よびRMCを利用するためのインターフェースを提供します。RMC は、数多くのシステム・モニターを
提供します。さらに、検出されたイベントへの応答を自由にカスタマイズすることも可能です。
Service and productivity tools
とは?
(1)
• Power Systemsの機能を最大限活用するために必要なツール群
• DLPAR でH/W リソースを動的に変更するために必要
• HWエラーログをファイルへ出力することが可能
• 導入方法は以下の2通りがあります。
• IBM Installation Toolkit for PowerLinux のISOイメージから導入
• インターネット経由で直接導入
@ 2014 IBM Corporation 54
パッケージ 説明
ServiceRM
(devices.chrp.base.ServiceRM)
Service Resource Manager は、エラー・ログ分析ツール (diagela)の出力からサービス可能イベ ントを作成する、Reliable Scalable Cluster Technology (RSCT) リソース・マネージャーです。さ らに、ServiceRM はこれらのイベントをハードウェア管理コンソール (HMC) のサービス・フォーカ ル・ポイント™ に送信します。
DynamicRM (DynamicRM)
ハードウェア管理コンソール(HMC) が以下のことを行えるようにする、Reliable Scalable Cluster Technology (RSCT) リソース・マネージャーです。稼働中の区画でプロセッサーや入出力スロット を動的に追加または動的に削除する システム・ファームウェアを並行して更新する 区画で特定 のシャットダウン操作を実行するこのパッケージは現在、IBM に専有権があります。 Hardware Inventory (lsvpd,libvpd) lsvpd、lscfg、および lsmcode コマンドが入っています。これらのコマンドは、update-lsvpd-db と いうブート時間スキャン・スクリプトとともに、ハードウェア・インベントリー・システムを構成します。 lsvpd コマンドは、ハードウェア・コンポーネントについての重要プロダクト・データ (VPD) を、高度 な保守容易性ツールに提供します。lscfgコマンドは、可読性が向上したフォーマットでの VPD お よび一部のシステム固有の情報を提供します。 Service Log (libservicelog,servicelog) サービスを必要とする可能性があるシステム生成イベントを保管するためのデータベースを作成 します。パッケージには、データベースを照会するためのツールが含まれています。
Error Log Analysis (ppc64-diag)
エラー·ログ分析ツールではシステム上のプラットフォームファームウェアによって報告されたエ ラーを通知する機能を提供しています。/ var / log /platformに書き込まれたエラーを分析し、処置 が必要な場合は、ハードウェア管理コンソール(HMC)でサービス·フォーカル·ポイントに送信され ます。 Inventory Scout (IBMinvscout) ハードウェアおよびソフトウェア情報について システムを調査します。収集したデータは、マイクロ コード・ディスカバリー・サービスなどの Web サービスで使用できます。マイクロコード・ディスカバ リー・サービスは、インストールされているマイクロコードを更新する必要があるかどうかを示すレ ポートを生成します。
Service and Productivity tools の導入(IBMITを使う場合) (1)
§ 事前にIBMITのISOイメージを入手してください。
– http://www.ibm.com/webapp/set2/sas/f/lopdiags/installtools/home.html
# mount -o loop IBM_Installation_Toolkit_541.iso /mnt mount: warning: /mnt seems to be mounted read-only.
# /mnt/install
Do you want to copy the repository of IBM packages to your machine? [y/n]
y
Do you want to configure your machine to receive updates of IBM packages? [y/n]
n
IBMIT needs the ports 4234 and 8080 to be accessed remotely. Would you like to open those ports? [y/n]
n
The licenses BSD, GPL, ILAN and MIT must be accepted. You can read their text using the options below and then accept or decline them.
1) Read license: BSD 2) Read license: GPL 3) Read license: ILAN 4) Read license: MIT
5) I have read and accept all the licenses
6) I do not accept any of the licenses
#? 5 (ライセンス1)~4)を読んだ後に5を入力する)
Configuring an installation repository for your Linux distribution Where is the installation media to be used?
1) DVD
2) Network (HTTP or FTP) 3) Directory
4) I already have a repository configured. Skip. 5) I don't know
#? 1
Insert the DVD in the drive Press Enter to continue
(Enterキーを押す)
Verifying if there is a repository on DVD Available DVD devices: /dev/sr0
Checking /dev/sr0
Adding repository configuration to repository manager Repository successfully configured
Package ibmit4linux was successfully updated
これで、repositoryが作成されます。
@ 2014 IBM Corporation 56
Service and Productivity tools の導入
(IBMIT
を使う場合
)
§ RHEL6の場合
– パッケージの導入(仮想化環境)
# yum install ibm-power-managed-rhel6
– パッケージの導入(非仮想化環境)
# yum install ibm-power-nonmanaged-rhel6
§ SLES11の場合
– パッケージの導入(仮想化環境)
# zypper install ibm-power-managed-sles11
– パッケージの導入(非仮想化環境)
# zypper install ibm-power-nonmanaged-sles11
Service and Productivity tools の導入
(
インターネットから直接
)
§ RHEL6の場合
– リポジトリーの導入
# yum install ftp://public.dhe.ibm.com/software/server/POWER/Linux/yum/download/ibm-power-repo-1.2.2-1.ppc.rpm
※ 提供ファイル名は2014/3/12時点のものです。
– パッケージの導入(HMC/IVM環境)
# yum install ibm-power-managed-rhel6
– パッケージの導入(単体環境)
# yum install ibm-power-nonmanaged-rhel6
§ SLES11の場合
– リポジトリーの導入
# zypper install ftp://public.dhe.ibm.com/software/server/POWER/Linux/yum/download/ibm-power-repo-1.2.2-1.ppc.rpm
※ 提供ファイル名は2014/3/12時点のものです。
– パッケージの導入(HMC/IVM環境)
# zypper install ibm-power-managed-sles11
– パッケージの導入(単体環境)
# zypper install ibm-power-nonmanaged-sles11
@ 2014 IBM Corporation 58
IBM Installation Toolkitのインストール①
[root@RHEL64-PPC-00 IBMIT]# pwd /media/IBMIT
[root@RHEL64-PPC-00 IBMIT]# ls
ReleaseNotes.pdf ibmit-licenses-and-attributions.pdf ppc TRANS.TBL install repos
boot license users_manual.pdf copyright non_ibm_license utils etc notices firmwares packages
[root@RHEL64-PPC-00 IBMIT]# ./install
Do you want to copy the repository of IBM packages to your machine? [y/n] y
Do you want to configure your machine to receive updates of IBM packages? [y/n] y
IBMIT needs the ports 4234 and 8080 to be accessed remotely. Would you like to open those ports? [y/n] n
IBM Installation Toolkitのインストール②
The licenses BSD, GPL, ILAN and MIT must be accepted. You can read their text using the options below and then accept or decline them.
1) Read license: BSD 2) Read license: GPL 3) Read license: ILAN 4) Read license: MIT
5) I have read and accept all the licenses 6) I do not accept any of the licenses #? 5
Configuring an installation repository for your Linux distribution Where is the installation media to be used?
Where is the installation media to be used? 1) DVD
2) Network (HTTP or FTP) 3) Directory
4) I already have a repository configured. Skip. 5) I don't know
#? 4
Repository configuration skipped
Package ibmit4linux was successfully installed Package ibm-power-repo was successfully installed
@ 2014 IBM Corporation 60
Service and productivity toolsのインストール
ここで、下記のコマンドを実行します。
#
yum install ibm-power-managed-rhel6
実行後、インストール対象のパッケージが表示されるので、「y」を入力して、「Enter」を押します。
Is this ok [y/N]:
y
パッケージの導入が始まり、Complete!
と表示されて完了です。サブシステムの稼動確認
ここでは、下記のコマンドを実行します。 # lssrc -a
@ 2014 IBM Corporation 62
RHEL6.4-PPC に対してメモリーの動的追加
§ 追加前
[root@RHEL64-PPC-00 ~]# free
total used free shared buffers cached
Mem: 4141440 408576 3732864 0 36800 180160 -/+ buffers/cache: 191616 3949824
Swap: 4095872 0 4095872
@ 2014 IBM Corporation 64
RHEL6.4-PPC に対してメモリーの動的追加
§ 追加設定 (4GB → 8GB)
OS側で動的認識 [root@RHEL64-PPC-00 ~]# freetotal used free shared buffers cached
Mem: 8335744 449024 7886720 0 36864 180480 -/+ buffers/cache: 231680 8104064
RMC接続を確認するためのコマンド
Checking status of the RMC connection on IVM and HMC using rmcdomainstatus
http://www-01.ibm.com/support/docview.wss?uid=isg3T1011508 # /usr/sbin/rsct/bin/rmcdomainstatus -s ctrmc
DLPAR を使用するさいにはHMCとRMC接続が確立している必要があります。
以下のコマンドでHMCとのRMC接続のステータスをご確認いただけます。
[root@RHEL64-PPC-00 ~]# /usr/sbin/rsct/bin/rmcdomainstatus -s ctrmc
Management Domain Status: Management Control Points I A 0xe55796924d0968b6 0001 10.7.3.30
@ 2014 IBM Corporation 66
IBM SDK for PowerLinux 1.3.1 のご紹介
PowerLinux に最適化された、
コードアドバイス機能などを包含する
Eclipse ベースの統合開発環境
§ EclipseとC/C++ 開発ツール・コンポーネント
– Eclipse Platform 4.2.1– Eclipse Parallel Tools Platform (PTP) 6.0.3 – C/C++ Development Tools (CDT) 8.1.1 – Eclipse Linux Tools 1.2.0
§ IBM Feedback Directed Program Restructuring (FDPR) version 5.6.1-9
§ IBM CPI ブレークダウン・ツール ( CPI : cycles per instruction)
§ 移行アドバイザー
§ 統合バグ・レポート・ツール
§ ソースコード・アドバイザー
@ 2014 IBM Corporation 68
Linux on Power移行時の考慮点
• Javaの開発環境
– Linux on Power には、Oracle JDKは導入できません。
– IBM JDKをご利用ください。各ディストリビューションに入っています。
• http://www.ibm.com/developerworks/java/jdk/linux/download.html
– RHEL
• RHEL Server Supplementary (v. 6 for IBM POWER)
– IBM Java Development Kit
» java-1.6.0-ibm-devel-1.6.0.13.0-1jpp.3.el6_4.ppc64.rpm » java-1.7.0-ibm-devel-1.7.0.4.0-1jpp.2.el6_4.ppc64.rpm
– SLES
• SUSE Linux Enterprise Software Development Kit 11 SP2
– Java SDK Standard Edition
» java-1_6_0-ibm-devel-1.6.0_sr13.0-0.8.1.ppc64.rpm » java-1_7_0-ibm-devel-1.7.0_sr4.0-0.6.1.ppc64.rpm
• Oracle JavaとIBM Javaの違いについて
– IBM Javaでは、JAAS*1 に関してcom.sun.security.*ではなく、com.ibm.security.*以下の
パッケージに相当するクラス実装が提供されています。 – JAASに限らず、SSLを含む暗号・セキュリティ関係の実装に関してはOracle JDKと異なる 実装が用いられております。 * http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=/ com.ibm.java.doc.user.lnx.60/security/jaas/jaas.htm * lhttp://www.ibm.com/developerworks/java/jdk/security/index.html
IBM提供のJDKのインストール
ここでは、下記のコマンドを実行します。 # yum install ibm-java-ppc64-sdk
[root@RHEL64-PPC-00 IBMIT]# yum install ibm-java-ppc64-sdk
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process Resolving Dependencies --> Running transaction check
---> Package ibm-java-ppc64-sdk.ppc64 0:7.0-5.0 will be installed --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size
================================================================================ Installing: ibm-java-ppc64-sdk ppc64 7.0-5.0 IBMIT_LOCAL_REPO 112 M Transaction Summary Installed: ibm-java-ppc64-sdk.ppc64 0:7.0-5.0 Complete!
@ 2014 IBM Corporation 70