ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を終える際は、これらの値をクラウド環境に固有の値に置き換えてください。
Windows Active Directoryを使用したHA SambaクラスタのOCIへのデプロイ
イントロダクション
Ubuntuインスタンス上のSambaをOracle Cloud Infrastructure (OCI)に自動フェイルオーバーして、高可用性(HA)を構成する方法について説明します。このソリューションは、堅牢で信頼性の高いファイル・サーバー・インフラストラクチャであり、クラスタ化されたServer Message Block (SMB)設定の機能を利用し、完全にライセンスフリーです。コストが関連するのは、消費量(oCPUおよびブロック・ボリューム・サイズ)のみです。
クラスタ化された SMBファイルサーバーサービスを組織に実装する利点は次のとおりです。
-
信頼性:クラスタ化された構成により、高可用性が確保され、ダウンタイムのリスクが最小限に抑えられ、重要なファイルへの常時アクセスが保証されます。
-
フォルト・トレランス:サーバー障害が発生した場合、クラスタ化された設定によって自動フェイルオーバーが提供され、ファイルへの中断のないアクセスが保証され、ビジネス継続性が維持されます。
-
リソース使用率:効率的なリソース割当てにより、サーバー・リソースの最適な利用が保証され、運用コストを最小限に抑えながら生産性が最大化されます。
-
High Performance:クラスタ化されたSMBファイル・サーバーの実装は、進化するビジネス・ニーズに合せて調整された、自己回復性のある高パフォーマンスのIT環境を構築するための戦略的な移行です。
アーキテクチャ
目標
- 信頼性の高いファイルサーバーを、Windows Active Directoryと統合された SMBプロトコルをサポートするHAに配備します。
前提条件
-
OCIテナンシへのアクセス。
-
2つのLinux Ubuntu VM。
-
1つのブロック・ボリューム。
タスク1: 環境の設定
-
2つのUbuntu 22.04コンピュート・インスタンスを作成します。
-
両方のコンピュート・インスタンスで、ファイルを格納するディレクトリを確立し、Sambaサーバーを構成します。たとえば、
/mnt/smb
などです。 -
SMBデータストアに必要なサイズでブロック・ボリュームを作成し、両方のコンピュート・インスタンス(iSCSI、読取り/書込み- 共有可能)にアタッチします。詳細は、複数のインスタンスへのボリュームのアップロードを参照してください。
-
次のコマンドを使用して、アタッチされたブロック・ボリュームに割り当てられた開発名をメモします。
sudo lsblk
-
最初のノードでセカンダリ・プライベートIPアドレスを割り当てます。これは浮動IPアドレスです。例:
10.10.1.254
-
両方のUbuntuインスタンスの
/etc/hosts
ファイルを更新して、ユーザー認証に使用されるWindows Active Directoryサーバーを含め、すべてのノードのIPアドレスとホスト名を含めます。たとえば、10.10.1.60 smb1
、10.10.1.29 smb2
、10.10.1.59 ad.testad.oci testad.oci AD
です。 -
必要に応じて、両方のUbuntuインスタンスで
iptables
を構成します。ノート: Ubuntuインスタンスには、事前構成されたiptablesが付属しています。INPUTセクションの6番目の規則では、ほかのすべての規則が拒否されるため、それを削除するか、この規則の前に許可されている特定のプロトコルとポートを追加するかを選択できます。
-
両方のUbuntuインスタンスにOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)をインストールして構成します。詳細は、OCI CLIをインストールして構成する(構成コマンド: oci setup config)を参照してください。
ノート:権限の問題を回避するために、OCI CLIを
/usr/bin
またはユーザー・パスにインストールします。デフォルトではrootです。bash -c "$(curl -L https://raw.githubusercontent.com/oracle/ocicli/master/scripts/install/install.sh)"
タスク2: Oracle Cluster File Systemバージョン2 (OCFS2)の構成
Oracle Cluster File Systemバージョン2 (OCFS2)は、Oracle Corporationによって開発され、GNU General Public Licenseでリリースされた汎用共有ディスク・ファイル・システムです。
共有書込み可能ブロック・ボリュームを管理するには、OCFS2をデプロイする必要があります。詳細は、Oracle Cloud InfrastructureでのiSCSIを使用したOracle Cluster File System (OCFS2)の簡易ガイドを参照してください。
-
次のコマンドを両方のノードで実行します。
sudo apt-get install ocfs2-tools -y
-
/etc/default/o2cb
ファイルのO2CB_ENABLED
の値をfalseからtrueに更新します。O2CB_ENABLED=true
-
/etc/ocfs2/cluster.conf
ファイルに次のコードを入力します。ノート:ファイルのインデントおよびフォーマットは注意してください。
cluster: name = ocfs2 heartbeat_mode = local node_count = 2 node: cluster = ocfs2 number = 0 ip_port = 7777 ip_address = 10.10.1.60 name = smb1 node: cluster = ocfs2 number = 1 ip_port = 7777 ip_address = 10.10.1.29 name = smb2
-
次に、
o2cb
サービスを起動します。sudo /etc/init.d/o2cb start
-
OCFS2ファイル・システムでブロック・ボリューム・デバイスをフォーマットします。次のコマンドは最初のノードでのみ実行します。
ノート:ステップ3で書き留めたデバイスのパス。
sudo mkfs.ocfs2 "MyOCFS2Cluster" /dev/sd*
-
次のコマンドを使用してクラスタを登録します。
sudo o2cb register-cluster ocfs2
-
Sambaサーバーに割り当てられたディレクトリにブロックボリュームをマウントします。たとえば、
/mnt/smb
などです。sudo mount /dev/sd* /mnt/smb
-
次のコマンドを使用して、クラスタのステータスを確認します。
sudo o2cb list-nodes ocfs2
-
次のコマンドを使用してサービスを有効にします。
sudo systemctl enable o2cb sudo systemctl enable ocfs2
-
/etc/fstab
のfstab
を更新して、起動時にブロック・ボリュームを自動的にマウントします。ノート:開発名に従って
/dev/sd\*
デバイスを調整します。/dev/sd* /mnt/smb ocfs2 _netdev,defaults 0 0
タスク3: Sambaクラスタの設定
Sambaでは、Microsoft Windowsと Unixで実行されているコンピュータ間でファイルと印刷を共有できます。これは、NetBIOS over TCP/IP (NBT)やSMB (Common Internet File System (CIFS))など、多数のサービスおよびプロトコルの実装です。
-
次のコマンドを使用して、SambaおよびCluster Trivial Database (CTDB)を両方のノードにインストールします。
sudo apt-get install ctdb samba samba-common winbind smbclient -y
-
Samba構成ファイルを編集します。
sudo nano /etc/samba/smb.conf
次のパラメータをコピーして貼り付けます。
ノート:
- 環境およびウィンドウ
domain/workgroup
に従って構成する必要があります。 netbios name
パラメータは、すべてのノードで同じである必要があります。
[global] server string = samba_server workgroup = TESTAD password server = ad.testad.oci realm = testad.oci winbind enum groups = yes winbind enum users = yes winbind use default domain = yes security = ADS debuglevel = 2 wins support = no idmap config TESTAD : backend = rid idmap config TESTAD : range = 10000 - 50000 idmap config * : backend = tdb idmap config * : range = 1000-9999 template shell = /bin/false winbind offline logon = false interfaces = lo ens3 clustering = yes guest ok = yes bind interfaces only = no disable netbios = no netbios name = sambacluster1 smb ports = 445 log file = /var/log/samba/smb.log max log size = 10000 veto files = /._*/.DS_Store/.Trashes/.TemporaryItems/ delete veto files = yes nt acl support = yes inherit acls = yes map acl inherit = yes map archive = yes map hidden = yes map read only = yes map system = yes store dos attributes = yes inherit permissions = yes unix extensions = no [samba_test] path = /mnt/smb browseable = yes writeable = yes read only = no public = yes inherit acls = no admin users = "testad.oci\administrator" create mask = 0744 directory mask = 0755
- 環境およびウィンドウ
-
クラスタを設定するには、CTDB構成ファイルを編集します。
sudo nano /etc/ctdb/ctdb.conf
次のパラメータをコピーして貼り付けます。
CTDB_NODES=/etc/ctdb/nodes CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses CTDB_RECOVERY_LOCK="/mnt/Samba/ctdb/.ctdb.lock" CTDB_MANAGES_SAMBA=yes CTDB_MANAGES_WINBIND=yes CTDB_SERVICE_SMB=smbd
-
クラスタを構成するためのノード構成ファイルを編集します。
sudo nano /etc/ctdb/nodes
ノードのIPアドレスを追加します。
10.10.1.60 10.10.1.29
-
CTDBパブリック・アドレス構成ファイル(浮動IPアドレス)を編集します。
Sudo nano /etc/ctdb/public_addresses
浮動IPアドレスを追加します。
10.10.1.254/0 ens3
-
フローティングIPアドレスをOCIレベルで管理し、フェイルオーバー時に自動的に移行するスクリプトを追加する必要があります。
Sudo nano /etc/ctdb/functions
add_ip_to_iface ()セクションの後に次のコードを追加します。
ノート:ノードVNICのOCIDおよびホスト名を使用して、Oracle Cloud Identifier (OCID)およびホスト名を変更します。
##### OCI vNIC variables server="`hostname -s`" smb1vnic="ocid1.vnic.oc1.eu-frankfurt-1.YOUR_NODE1_VNIC_OCID" smb2vnic="ocid1.vnic.oc1.eu-frankfurt-1.YOUR_NODE2_VNIC_OCID" vnicip="10.10.1.254" #export LC_ALL=C.UTF-8 #export LANG=C.UTF-8 #touch /tmp/vip.log ##### OCI/IPaddr Integration if [ $server = "smb1" ]; then /usr/bin/oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $smb1vnic --ip-address $vnicip 2>/dev/null else /usr/bin/oci network vnic assign-private-ip --unassign-if-already-assigned --vnic-id $smb2vnic --ip-address $vnicip 2>/dev/null fi
-
フローティングIPアドレスの移行が機能しない場合は、次のコマンドを使用してトラブルシューティングします。
sudo journalctl -u ctdb.service
タスク4: Windows Active Directoryの統合
-
Windows Active Directoryサーバーとユーザーアクセスを統合するには、両方のノードに Kerberosをインストールする必要があります。
sudo apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
-
Kerberosを構成するには、次のコマンドを使用します。
sudo nano /etc/krb5.conf
-
次のコードで構成ファイルを確認してください。
ノート:ご使用の環境で構成されているWindowsドメイン/レルムを使用してください。
[libdefaults] default_realm = TESTAD.OCI # The following krb5.conf variables are only for MIT Kerberos. kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # The following encryption type specification will be used by MIT Kerberos. # if uncommented. In general, the defaults in the MIT Kerberos code are # correct and overriding these specifications only serves to disable new # encryption types as they are added, creating interoperability problems. # The only time when you might need to uncomment these lines and change # the enctypes is if you have local software that will break on ticket # caches containing ticket encryption types it doesn't know about (such as # old versions of Sun Java). # default_tgs_enctypes = des3-hmac-sha1 # default_tkt_enctypes = des3-hmac-sha1 # permitted_enctypes = des3-hmac-sha1 # The following libdefaults parameters are only for Heimdal Kerberos. fcc-mit-ticketflags = true [realms] TESTAD.OCI = { kdc = ad.testad.oci admin_server = ad.testad.oci
-
最後の手順では、次のコマンドを使用して両方のホストを Windowsドメインに参加させます。
Sudo net ads join -U Administrator -S testad.oci
ここで、浮動IPアドレスおよびWindows Active Directoryユーザー(//10.10.1.254/samba_test
など)を使用してクライアントをSambaサーバーに接続し、1つのノードが停止または再起動された場合にビジネス継続性をテストします。
新しいSambaクラスタの準備ができました。
関連リンク
承認
- 著者 - Marco Santucci (EMEA Enterprise Cloud Solution Architect)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Deploy an HA Samba Cluster with Windows Active Directory on OCI
F92343-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.