- Oracle Cloud
- Oracle Database
OCIでGPUインスタンスを構築してみた
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
|
初版公開日:2022.09.08
更新日:2024.07.19
Oracle Base Database Service(Database Cloud Service:DBCSから名称が変更されました、以降BaseDBと記載します)もCompute Serviceと同様に、OSを含むアプリケーションなどのレイヤーはお客様管理の範囲となるため、OS上でシステム運用に必要な設定はお客様に実施いただく必要があります。
この際に、設定ミスや設定自体の影響によりSSH接続が不可となるような問題が発生する可能性がありますが、このような問題のトラブルシュートのためBaseDBにおいてもシリアル・コンソール接続が用意されています。
今回は、BaseDBにおけるシリアル・コンソール接続の方法をご紹介します。
シリアル・コンソール接続までのステップは次のとおりです。
1.管理コンソールにてSSH接続できないBaseDBの画面に移動し、画面左下から[コンソール接続]をクリックし、[コンソール接続の作成]をクリックします。
|
2.「SSHキー・ファイルのアップロード」を選択し、SSH公開鍵ファイルをドロップし、[コンソール接続の作成]をクリックします。
|
3.作成されたコンソール接続の右端の三点マークをクリックし、[SSH文字列のコピー]をクリックします。
|
クリップボードに以下のような文字列がコピーされるので、テキストエディタなどに貼り付けておきます。
ssh -o ProxyCommand='ssh -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-tokyo-1.anxhiljrvt4pmxac6h2kuffksajbwaufku4zi24go5ceojs3yniy4g2rwf3q@instance-console.ap-tokyo-1.oci.oraclecloud.com' ocid1.instance.oc1.ap-tokyo-1.anxhiljrvt4pmxacpr7nya4gohpbl4cjdhojzltrdixngf3hhqlwqh3aheqa
1.管理コンソールの画面右上から、[Cloud Shell]をクリックします。
|
2.管理コンソールの下部にCloud Shellが起動します。
プロンプト右上の歯車メニューをクリックし、アップロードをクリックします。「1.BaseDBでコンソール接続を作成」の項番2で用意した公開鍵とペアになる秘密鍵をアップロードし「.ssh」ディレクトリ配下に配置します。
|
・カレントディレクトリを確認します $ pwd →/home/<コンソールにログインしているユーザー名> が返される ・「.ssh」ディレクトリを作成し、パーミッション700に変更します $ mkdir .ssh $ chmod 700 .ssh ・アップロードした秘密鍵があることを確認します $ ls -l →ユーザー名はxxxxxxでマスキングしています -rw-r--r--. 1 xxxxxx oci 1819 Aug 8 08:44 id_rsa ・「.ssh」に移動し、パーミッションを600に変更します $ mv id_rsa .ssh $ chmod 600 .ssh/id_rsa
3.「1.BaseDBでコンソール接続を作成」の項番3でペーストした文字列に秘密鍵のフルパスを追記します。以下のように「-i <秘密鍵のパス>」をSSHコマンドのオプションとして二箇所に追記します。
ssh -i /home/xxxxxx/.ssh/id_rsa -o ProxyCommand='ssh -i /home/xxxxxx/.ssh/id_rsa -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-tokyo-1.anxhiljrvt4pmxac4fvwvdqths444vy32iwafkovchb6kk6er6qk3hrx64va@instance-console.ap-tokyo-1.oci.oraclecloud.com' ocid1.instance.oc1.ap-tokyo-1.anxhiljrvt4pmxacpr7nya4gohpbl4cjdhojzltrdixngf3hhqlwqh3aheqa
4.項番3の文字列をCloud Shellで実行します。
最後に「<BaseDBのホスト名> login:」と表示されれば準備は完了です。
Cloud Shellは、この画面のまま閉じずに開いたままにしておきます。
xxxxxx@cloudshell:~ (ap-tokyo-1)$ ssh -i /home/xxxxxx/.ssh/id_rsa -o ProxyCommand='ssh -i /home/xxxxxx/.ssh/id_rsa -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-tokyo-1.anxhiljrvt4pmxac4fvwvdqths444vy32iwafkovchb6kk6er6qk3hrx64va@instance-console.ap-tokyo-1.oci.oraclecloud.com' ocid1.instance.oc1.ap-tokyo-1.anxhiljrvt4pmxacpr7nya4gohpbl4cjdhojzltrdixngf3hhqlwqh3aheqa FIPS mode initialized FIPS mode initialized ★ここで出力が止まる場合があるため、止まった場合はEnter The authenticity of host '[instance-console.ap-tokyo-1.oci.oraclecloud.com]:443 ([140.204.8.241]:443)' can't be established. RSA key fingerprint is SHA256:XaslfzT0xS7BO4fIgzPeDNcDawGlZXziUOIq4axH3M0. RSA key fingerprint is SHA1:9g01oNUudPb/SW9XFjr2m8R3L2w. Are you sure you want to continue connecting (yes/no)? yes ★「yes」を入力しEnter Warning: Permanently added '[instance-console.ap-tokyo-1.oci.oraclecloud.com]:443,[140.204.8.241]:443' (RSA) to the list of known hosts. ================================================= IMPORTANT: Use a console connection to troubleshoot a malfunctioning instance. For normal operations, you should connect to the instance using a Secure Shell (SSH) or Remote Desktop connection. For steps, see https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/accessinginstance.htm For more information about troubleshooting your instance using a console connection, see the documentation: https://docs.cloud.oracle.com/en-us/iaas/Content/Compute/References/serialconsole.htm#four ================================================= The authenticity of host 'ocid1.instance.oc1.ap-tokyo-1.anxhiljrvt4pmxacpr7nya4gohpbl4cjdhojzltrdixngf3hhqlwqh3aheqa ()' can't be established. RSA key fingerprint is SHA256:AfhpmyGAxGUpOsI5fZdYgoS2TT8XTLCEfVr1mdZvuf4. RSA key fingerprint is SHA1:Pu6zXDeLrBEGbgeOLq+/9ok9Rd0. Are you sure you want to continue connecting (yes/no)? yes ★「yes」を入力しEnter Warning: Permanently added 'ocid1.instance.oc1.ap-tokyo-1.anxhiljrvt4pmxacpr7nya4gohpbl4cjdhojzltrdixngf3hhqlwqh3aheqa' (RSA) to the list of known hosts. Oracle Linux Server 7.9 Kernel 4.1.12-124.60.1.el7uek.x86_64 on an x86_64 <BaseDBのホスト名> login: ★この出力となれば完了
1.Step2のCloud Shellはそのままで、管理コンソールから対象のBaseDBのノードを再起動します。
|
2.後続作業に備えて、Cloud Shellの画面を最大化します。
また、事前に半角英数入力となっていることを確認します。
|
3.停止が完了すると起動のステップに移ります。
Oracle Linuxのバージョンによって、以下の手順を読み替えてください。
|
以下のようにブートローダーが起動しますので「e」を入力します。
|
ブートエントリが表示されたら「linuxefi」で始まる行に移動して行の最後に「init=/bin/bash」を追記します。
linuxefi /vmlinuz-4.1.12-124.60.1.el7uek.x86_64 root=/dev/mapper/VolGr\ oupSys1-LogVolRoot ro rd.lvm.lv=VolGroupSys1/LogVolRoot rd.lvm.lv=VolGroupSys1\ /LogVolSwap rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd.shell SYSFONT=latarcyrheb-\ sun16 selinux=0 KEYBOARDTYPE=pc KEYTABLE=us pci=noaer crashkernel=256M@64M log\ level=3 panic=60 transparent_hugepage=never ipv6.disable=1 audit=1 intel_idle.\ max_cstate=1 nofloppy nomce numa=off console=ttyS0,115200 iscsi_initiator=iqn\ .1994-05.com.domain:01.1846a2 netroot=iscsi:@169.254.0.2::3260::iqn.2015-02.o\ racle.boot:uefi ip=dhcp biosdevname=1 rd_NO_DM PRODUCT=ORACLE_SERVER_X5-2 TYPE\ =X5_2_LITE_IAAS intremap=off nvme.nvme_io_queues=32 iscsi_param=node.session.t\ imeo.replacement_timeout=6000 init=/bin/bash ★末尾に入力します
追記が完了したら「Ctrl」+「x」キーでノードを再起動します。
そのまま待つと、bashのプロンプトが表示されます。
ここまで完了しましたら、BaseDBへのコンソール接続は成功です。
|
必要に応じてOS側の設定の見直し、修正などの対応を実施します。
対応が完了したら「/usr/sbin/reboot -f」コマンドでノードを再起動します。
bash-4.2# /usr/sbin/reboot -f
コンソール接続ウィンドウが残った状態でBaseDBノードを再起動後、「F12」を繰り返し押下すると以下のような画面が表示されますので、「Continue」を選択して「Enter」を押下します。
|
以下のようにブートローダーが起動しますので、一番上を選択した状態で「e」を入力します。
|
ブートエントリが表示されたら「Linux」で始まる行に移動して行の最後に「init=/bin/bash rw」を追記します。
linux ($root)/vmlinuz-5.4.17-2136.326.6.el8uek.x86_64 root=/dev/mapper/vg00-ro\ ot ro LANG=en_US.UTF-8 audit=1 console=hvc0 console=tty0 console=ttyS0,9600n8 \ crashkernel=auto ip=single-dhcp ipmi_si.tryacpi=0 ipmi_si.trydefaults=0 ipmi_s\ i.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=3 net.ifnames=1 netroot=iscsi\ :169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi network-config=e2NvbmZpZzogZGlzY\ WJsZWR9Cg== nomodeset nvme_core.shutdown_timeout=10 rd.dm=0 rd.iscsi_param=nod\ e.session.timeo.replacement_timeout=6000 rd.luks=0 rd.lvm.lv=vg00 rd.md=0 vcon\ sole.font=latarcyrheb-sun16 vconsole.keymap=us numa=off transparent_hugepage=m\ advise biosdevname=1 rd_NO_DM PRODUCT=ORACLE_SERVER_X5-2 TYPE=X5_2_LITE_IAAS i\ ntremap=off init=/bin/bash rw ★末尾に入力します
追記が完了したら「Ctrl」+「x」キーでノードを再起動します。
そのまま待つと、bashのプロンプトが表示されます。
ここまで完了しましたら、BaseDBへのコンソール接続は成功です。
|
Oracle Linux 8.x以降の場合、/home配下にディレクトリは存在しておらず、別途マウントコマンドの実行が必要です。
・カレントディレクトリを確認します # pwd →「/」が返される # cd home # pwd →「/home」が返される # ls -l →「total 0」が返される ・/home配下をマウントします # mount /dev/mapper/vg00-home /home # ls -l /home →/home配下にディレクトリが追加される total 44 drwx------ 2 clamav root 4096 Aug 20 2023 clamav drwxr-xr-x 4 grid oinstall 4096 Jul 13 05:28 grid drwx------ 2 990 root 4096 Aug 20 2023 hostmetrics drwx------. 2 root root 16384 Aug 10 2023 lost+found drwxr-xr-x 3 mysql mysql 4096 Jul 13 04:36 mysql drwx------ 3 opc opc 4096 Jun 4 05:46 opc drwxr-xr-x 3 oracle oinstall 4096 Jul 13 05:15 oracle drwx------ 2 secscan root 4096 Aug 20 2023 secscan
必要に応じて/home/opc配下の.sshなどのOS側の設定の見直し、修正などの対応を実施します。
対応が完了したら「/usr/sbin/reboot -f」コマンドでノードを再起動します。
# /usr/sbin/reboot -f
Oracle Linuxのバージョンによって変わる箇所は以上です。
4.正常に起動したことが確認できましたらSSH接続が可能となったかどうかをご確認ください。
確認が完了しましたら、Cloud Shell の画面を閉じて作業は完了です。
|
今回は、BaseDBへのシリアル・コンソール接続の方法をご紹介しました。
手順としては以下の記事でご案内している内容の応用となります。
BaseDB接続不可などの有事の際には、本記事をご参照いただけますと幸いです。
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
前回の記事でお伝えしたとおり、OCVSを構築するとVMwareの複数の機能が利用可能です。 それらの機能の中で、今回はHCXの概要や具体的な機能、OCVSでHCXを利用するメリットなどをお伝えします!
2024年5月にOracle Cloud環境にて、先行してOracle DB 23aiがリリースされました。 Oracle Base Database ServiceにおけるOracle Database 23aiの検証結果を報告します。 今回は「統合メモリー管理」をテーマにお伝えします。