Samba の CTDB の設定

In document 管理ガイド (Page 160-171)

第 6 章 ボリュームへのアクセスの作成

6.4.2. Samba の CTDB の設定

SMB を使用してレプリケーションを使用するボリュームを共有する場合は、CTDB(Cluster Trivial

Database)を設定して高可用性とロックの同期を提供する必要があります。

ctdb は、仮想 IP アドレス(VIP)およびハートビートサービスを追加して高可用性を提供します。信頼済 みストレージプールのノードが失敗した場合、CTDB では、障害が発生したノードがホストしている仮 想 IP アドレスを別のノードが引き継ぐことができます。これにより、提供されるサービスの IP アドレ スが常に利用できるようになります。

重要 重要

Amazon Elastic Compute Cloud(EC2)は仮想 IP をサポートしないため、このソリュー ションとの互換性はありません。

前提条件 前提条件

すでに古いバージョンの CTDB(バージョン <= ctdb1.x)がある場合は、以下のコマンドを実行

して CTDB を削除します。

# yum remove ctdb

旧バージョンを削除したら、最新の CTDB のインストールを続行します。

注記 注記

システムが samba チャネルにサブスクライブし、最新の CTDB パッケージを取 得している。

以下のコマンドを使用して、Samba サーバーとして使用されているすべてのノードに CTDB を インストールします。

# yum install ctdb

Samba の CTDB ベースの高可用性環境では、フェイルオーバーでロックは移行されません。

アクティブなゾーンで CTDB ファイアウォールサービスをランタイムおよび永続モードで有効 にします。以下のコマンドは、Red Hat Enterprise Linux 7 をベースとしたシステム向けです。

アクティブなゾーンの一覧を取得するには、以下のコマンドを実行します。

# firewall-cmd --get-active-zones

アクティブなゾーンにポートを追加するには、以下のコマンドを実行します。

# firewall-cmd --zone=zone_name --add-port=4379/tcp

# firewall-cmd --zone=zone_name --add-port=4379/tcp --permanent

Red Hat Gluster Storage Server でのでの CTDB の設定の設定

1. 新しい複製ボリュームを作成して、CTDB ロックファイルを保管します。ロックファイルのサ イズはゼロバイトであるため、小さなブリックを使用してください。

複製されたボリュームを作成するには、以下のコマンドを実行します。N を、複製するノード の数に置き換えます。

# gluster volume create volname replica N ip_address_1:brick_path ...

ip_address_N:brick_path 例:

# gluster volume create ctdb replica 3 10.16.157.75:/rhgs/brick1/ctdb/b1 10.16.157.78:/rhgs/brick1/ctdb/b2 10.16.157.81:/rhgs/brick1/ctdb/b3

2. 以下のファイルで、ステートメントにある all を新規に作成 META="all" したボリューム名

(例:)に置き換え META="ctdb"ます。

/var/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh /var/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh

3. /etc/samba/smb.conf ファイルに、全ノードの global セクションに以下の行を追加します。

clustering=yes

4. ボリュームを起動します。

S29CTDBsetup.sh スクリプトはすべての Red Hat Gluster Storage サーバーで実行され、マウ ント /etc/fstab 用のエントリーを追加し、Samba サーバーと共にすべてのノード /gluster/lock にボリュームをマウントします。また、再起動時に CTDB サービスの自動起動も可能にしま す。

注記 注記

特殊な CTDB ボリュームを停止すると、S29CTDB-teardown.sh スクリプトがす べての Red Hat Gluster Storage サーバーで実行され、マウントのエントリーが 削除され、ボリュームの /etc/fstab マウントが解除され /gluster/lockます。

5. /etc/sysconfig/ctdb ファイルが Samba サーバーとして使用されているすべてのノードに存在 することを確認します。このファイルには、Red Hat Gluster Storage に推奨される CTDB 設定 の詳細が含まれています。

6. Samba サーバーとして使用されているすべてのノードに /etc/ctdb/nodes ファイルを作成し、

そのノードに IP アドレスを追加します。

10.16.157.0 10.16.157.3 10.16.157.6

ここで一覧表示される IP アドレスは、Samba サーバーのプライベート IP アドレスです。

7. Samba サーバーとして使用され、IP フェイルオーバーが必要なノード

で、/etc/ctdb/public_addresses ファイルを作成します。以下の形式で CTDB が作成する仮想 IP アドレスをファイルに追加します。

VIP/routing_prefix network_interface 例:

192.168.1.20/24 eth0 192.168.1.21/24 eth0

8. すべてのノードで CTDB サービスを起動します。

# service ctdb start

6.4.3. SMB でのボリュームの共有

このプロセスに続いて、Samba を実行するサーバーに設定した gluster ボリュームは、ボリュームの開 始時に自動的にエクスポートされます。

デフォルトのボリューム共有セクションが以下に追加された場合は、以下の例を参照して /etc/samba/smb.confください。

[gluster-VOLNAME]

comment = For samba share of volume VOLNAME vfs objects = glusterfs

glusterfs:volume = VOLNAME

glusterfs:logfile = /var/log/samba/VOLNAME.log glusterfs:loglevel = 7

path = / read only = no guest ok = yes

設定オプションは、以下の表で説明されています。

表6.8 設定オプション設定オプション 設定オプション

設定オプション 必須必須/オプオプ ション ション

デフォル デフォル ト値 ト値

description

path ◯ N/A これは、共有される gluster ボリュームのルートに 相対するパスを表します。したがって、gluster ボ リュームのルート/を表します。ボリュームのサブ ディレクトリーのエクスポートはサポートされ、パ ス内の /subdir はボリュームのサブディレクトリー のみをエクスポートします。

glusterfs:volume ◯ N/A 共有されるボリューム名。

glusterfs:logfile いいえ NULL vfs プラグインによって読み込まれる gluster モ ジュールによって使用されるログファイルへのパ ス。で説明されているように、標準の Samba 変数 置換smb.confがサポートされます。

glusterfs:loglevel いいえ 7 このオプションは、gluster client-log-levelオプ ションと同等です。7 はデフォルト値で、INFO レベ ルに対応します。

glusterfs:volfile_ser ver

いいえ localhost ボリュームを取得するvolfileために接続される

gluster サーバー。空白で区切られた要素の一覧であ

る値を取ります。各要素は

unix+/path/to/socket/fileまたはです。

[tcp+]IP|hostname|\[IPv6\][:port]

設定オプション

設定オプション 必須必須/オプオプ ション ション

デフォル デフォル ト値 ト値

description

Samba でボリュームを共有する手順は、選択する Samba のバージョンによって異なります。

古いバージョンの

古いバージョンの Samba を使用している場合は、以下を行います。を使用している場合は、以下を行います。

1. SMB 固有のキャッシュを有効にします。

# gluster volume set VOLNAME performance.cache-samba-metadata on

汎用メタデータキャッシュを有効にして、パフォーマンスを向上させることもできます。詳細

「ディレクトリーの操作」はを参照してください。

2. 各 Red Hat Gluster Storage ノードで glusterd サービスを再起動します。

3. 適切なロックと I/O の一貫性を確認します。

# gluster volume set VOLNAME storage.batch-fsync-delay-usec 0

Samba-4.8.5-104 以降を使用している場合:以降を使用している場合:

1. gluster ボリュームを Samba 経由で SMB 共有としてエクスポートするには、以下のボリューム

オプション user.cifs またはのいずれか user.smb が必要です。

user.cifs ボリュームオプションを有効にするには、以下のコマンドを実行します。

# gluster volume set VOLNAME user.cifs enable

user.smb を有効にするには、以下を実行します。

# gluster volume set VOLNAME user.smb enable

Red Hat Gluster Storage 3.4 では、Samba-CTDB 設定に必要なボリュームオプションを設定す る samba ための group コマンドが導入されました。

2. 以下のコマンドを実行して、Samba-CTDB のボリュームオプションを設定します。

# gluster volume set VOLNAME group samba

このコマンドは、Samba-CTDB の設定で以下のオプションを有効にします。

performance.readdir-ahead: on performance.parallel-readdir: on

performance.nl-cache-timeout: 600 performance.nl-cache: on

performance.cache-samba-metadata: on network.inode-lru-limit: 200000

performance.md-cache-timeout: 600 performance.cache-invalidation: on features.cache-invalidation-timeout: 600 features.cache-invalidation: on

performance.stat-prefetch: on

Samba-4.9.8-109 以降を使用している場合:以降を使用している場合:

以下のステップは、厳密にオプションであり、多数のクライアントがボリュームに接続しているか、ま たはより多くのボリュームが使用される環境でフォローすることです。

Red Hat Gluster Storage 3.5 では、対応する FUSE のマウントパスからボリューム共有を設定するオプ ションの方法が導入されました。以下の手順は、クラスター内のすべてのノードで実行する必要があり ます。

1. FUSE を介して GlusterFS ボリュームをマウントし、次の手順のために FUSE マウントポイン トを記録します。

「ボリュームの自動マウント」

「ボリュームの手動マウント」

2. の samba 共有設定ファイルを編集します。 /etc/samba/smb.conf

[gluster-VOLNAME]

comment = For samba share of volume VOLNAME vfs objects = glusterfs

glusterfs:volume = VOLNAME

glusterfs:logfile = /var/log/samba/VOLNAME.log glusterfs:loglevel = 7

path = / read only = no guest ok = yes

vfs objects パラメーター値を編集 glusterfs_fuse

vfs objects = glusterfs_fuse

以前に記録した FUSE マウントポイントに path パラメーター値を編集します。例:

path = /MOUNTDIR

3. SELinux を Enforcing モードに設定して、SELinux ブール値を有効にし samba_share_fusefsます。

# setsebool -P samba_share_fusefs on

注記 注記

作成される新規ボリュームは、デフォルト vfs objects パラメーターを使用して 自動的に設定されます。

samba 共有設定ファイルへの変更は、ボリュームが Gluster CLI を使用して削除

されるまで、ボリュームの再起動時に保持されます。

ボリューム上の Gluster CLI 操作の一部として呼び出される Samba フックスク リプトは、名前付きの Samba 共有で VOLNAME のみ動作し

[gluster-VOLNAME]ます。つまり、フックスクリプトは、呼び出された samba 共有の設

定ファイルを削除したり、変更したりしません [VOLNAME]。

すべての

すべての Samba バージョンの場合:バージョンの場合:

1. SMB/CIFS 共有からボリュームにアクセスできることを確認します。

# smbclient -L <hostname> -U%

例:

# smbclient -L rhs-vm1 -U%

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.17]

Sharename Type Comment -- ----

IPC$ IPC IPC Service (Samba Server Version 4.1.17) gluster-vol1 Disk For samba share of volume vol1

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.17]

Server Comment -- Workgroup Master --

---2. ユーザーが SMB/CIFS 共有にアクセスできることを確認します。以下のコマンドを実行しま す。

# smbclient //<hostname>/gluster-<volname> -U <username>%<password>

例:

# smbclient //10.0.0.1/gluster-vol1 -U root%redhat

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.17]

smb: \> mkdir test smb: \> cd test\

smb: \test\> pwd

Current directory is \\10.0.0.1\gluster-vol1\test\

smb: \test\>

6.4.4. 共有ボリュームへのユーザーアクセスの設定

6.4.4.1. macOS ユーザーのユーザーのApple Create Context の設定の設定

1. 以下の行を smb.conf ファイルの [global] セクションに追加します。表示されるインデントレ ベルが必要であることに注意してください。

fruit:aapl = yes ea support = yes

2. ファイル内のボリュームのエクスポート設定ブロックに以下の行を追加して、vfs_fruit モ ジュールとその依存関係を smb.conf 読み込みます。

vfs objects = fruit streams_xattr glusterfs 例:

[gluster-volname]

comment = For samba share of volume smbshare vfs objects = fruit streams_xattr glusterfs

glusterfs:volume = volname

glusterfs:logfile = /var/log/samba/glusterfs-volname-fruit.%M.log glusterfs:loglevel = 7

path = / read only = no guest ok = yes

fruit:encoding = native

6.4.4.2. 非特権ユーザーの読み取り非特権ユーザーの読み取り/書き込みアクセスの設定書き込みアクセスの設定

1. 設定に基づいて、すべての Samba サーバーにユーザーを追加します。

# adduser username

2. すべての Samba サーバーの Samba ユーザー一覧にユーザーを追加し、以下のコマンドを実行

してパスワードを割り当てます。

# smbpasswd -a username

3. 他の Samba サーバーから、FUSE プロトコルを使用してボリュームをマウントします。

# mount -t glusterfs -o acl ip-address:/volname /mountpoint 例:

# mount -t glusterfs -o acl rhs-a:/repvol /mnt

In document 管理ガイド (Page 160-171)