Samba 3.0で構築したドメインコントローラーを、Windows 7やWindows Server 2008 R2対応などのために、Samba 3.2以降にアップデートする際の注意点。
Samba 3.0のドメインメンバーサーバーがある場合は、アップデートした、Samba 3.2サーバーのsmb.confの[global]セクションに"lanman auth = Yes"を追加する。
この設定を追加しない場合、Samba3.0のドメインメンバーサーバーの共有フォルダにアクセスすると、「現在、ログオン要求を処理できるログオンサーバーはありません」のエラーが表示されることになる。
Samba 3.2から、"lanman auth = No"にデフォルト値が変更されたため。
2010年7月23日金曜日
2010年7月9日金曜日
[Samba] Solaris10でsetgroups()
先日のSambaで所属グループ数の上限を超えて、setgroups()をするとpanicする問題について、対策用のパラメーターを追加したパッチを作成してみた。
パッチはこのあたりをベースに作成してみた。
http://groups.google.com/group/mailing.unix.samba-technical/browse_thread/thread/6accbc4250ccbab5?pli=1
setgroups()に失敗したときのセカンダリグループの権限がどうなるかだけど、指定したグループ数が上限を超えていると、setgroups()が「Invalid argument」のエラーになる。
このときは、setgroups()呼ぶ前と一緒の権限の状態になっているので、グループ数の上限を超えたときは、セカンダリグループの権限はまったく付与されないことを確認した。
パッチはこのあたりをベースに作成してみた。
http://groups.google.com/group/mailing.unix.samba-technical/browse_thread/thread/6accbc4250ccbab5?pli=1
setgroups()に失敗したときのセカンダリグループの権限がどうなるかだけど、指定したグループ数が上限を超えていると、setgroups()が「Invalid argument」のエラーになる。
このときは、setgroups()呼ぶ前と一緒の権限の状態になっているので、グループ数の上限を超えたときは、セカンダリグループの権限はまったく付与されないことを確認した。
2010年7月5日月曜日
CentOS 5.5でiscsiターゲットの簡単構築
iSCSIを利用すると、複数ノードから同時に利用できる共有ディスクとして利用することが可能です。
このときに、ディスク側のデバイスとしては、iSCSI対応のストレージを利用することもできますが、お手軽に試験などに利用したいときは、LinuxのiSCSIターゲット機能を利用することができます。
そこで、CentOS5.5で、iSCSIターゲットをお手軽構築する手順を説明します。
1. OSのインストール
CentOSインストール時に、後でiSCSIターゲットとして公開するためのディスク領域を空き領域のパーティションとして、あらかじめ確保しておきます。
2. iSCSI用ディスク領域の準備
fdiskなどで、iSCSIディスクとして利用するためのブロックデバイスを作成します。今回は、「/dev/sda3」としてブロックデバイスを用意しました。
3. scsi-target-utilsパッケージのインストール
# yum install scsi-target-utils
iSCSIターゲットの処理を行うtgtdを起動します。
# /sbin/service tgtd start
iSCSIターゲットのディスクは、tgtadmコマンドで設定しますが、より簡単に作成するためのコマンドとして、tgt-setup-lunコマンドが用意されています。 tgt-setup-lunコマンドの詳細はmanで確認することができます。
# man tgt-setup-lun
今回は、/dev/sda3をディスクとして使用し、iSCSIイニシエーターとして、10.0.102.41と10.0.102.42から接続するため、次のコマンドを実行しました。
Using transport: iscsi
Creating new target (name=iqn.2001-04.com.iscsifs-iscsi-vol1, tid=1)
Adding a logical unit (/dev/sda3) to target, tid=1
Accepting connections only from 10.0.102.41 10.0.102.42
6. 動作確認
tgt-adminコマンドの-sオプションで、ディスクがiSCSIターゲットとして認識されていることを確認します。
# tgt-admin -s
Target 1: iqn.2001-04.com.iscsifs-iscsi-vol1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: None
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 153097 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: /dev/sda3
Account information:
ACL information:
10.0.102.41
10.0.102.42
8. /etc/tgt/targets.confの設定
再起動時に、自動的に上記の設定が有効になるように、/etc/tgt/targets.confに以下の設定を追加します。
7. tgtdの自動起動の設定
設定内容に問題が無ければ、マシン起動時にtgtdが自動起動するように設定しておきます。
# /sbin/chkconfig tgtd on
以上でCentOS5上でのiSCSIターゲットの構築は完了です。
1. OSのインストール
CentOSインストール時に、後でiSCSIターゲットとして公開するためのディスク領域を空き領域のパーティションとして、あらかじめ確保しておきます。
2. iSCSI用ディスク領域の準備
fdiskなどで、iSCSIディスクとして利用するためのブロックデバイスを作成します。今回は、「/dev/sda3」としてブロックデバイスを用意しました。
3. scsi-target-utilsパッケージのインストール
# yum install scsi-target-utils
iSCSIターゲットの処理を行うtgtdを起動します。
# /sbin/service tgtd start
iSCSIターゲットのディスクは、tgtadmコマンドで設定しますが、より簡単に作成するためのコマンドとして、tgt-setup-lunコマンドが用意されています。 tgt-setup-lunコマンドの詳細はmanで確認することができます。
# man tgt-setup-lun
今回は、/dev/sda3をディスクとして使用し、iSCSIイニシエーターとして、10.0.102.41と10.0.102.42から接続するため、次のコマンドを実行しました。
Using transport: iscsi
Creating new target (name=iqn.2001-04.com.iscsifs-iscsi-vol1, tid=1)
Adding a logical unit (/dev/sda3) to target, tid=1
Accepting connections only from 10.0.102.41 10.0.102.42
6. 動作確認
tgt-adminコマンドの-sオプションで、ディスクがiSCSIターゲットとして認識されていることを確認します。
# tgt-admin -s
Target 1: iqn.2001-04.com.iscsifs-iscsi-vol1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: None
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 153097 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: /dev/sda3
Account information:
ACL information:
10.0.102.41
10.0.102.42
8. /etc/tgt/targets.confの設定
再起動時に、自動的に上記の設定が有効になるように、/etc/tgt/targets.confに以下の設定を追加します。
</target> <target iqn.2001-04.com.iscsifs-iscsi-vol1 > backing-store /dev/sda3 initiator-address 10.0.102.41 initiator-address 10.0.102.42
7. tgtdの自動起動の設定
設定内容に問題が無ければ、マシン起動時にtgtdが自動起動するように設定しておきます。
# /sbin/chkconfig tgtd on
以上でCentOS5上でのiSCSIターゲットの構築は完了です。
2010年7月2日金曜日
[samba] 所属グループ数の制限を超えるとpanic
最近のSambaでは、setgroups()が失敗するとpanicとなるように実装が変更されていた。
smbd/sec_ctx.c
if (sys_setgroups(gid, ngroups, groups) != 0 && !non_root_mode()) {
smb_panic("sys_setgroups failed");
}
この理由について、こちらで述べられている。
http://old.nabble.com/sys_setgroups-:-migration-issues-from-3.0-series-to-3.2-3.3-series-td23103672.html
要約すると、「setgroups()に失敗したままだと、実際にはグループの権限を持っていないためアクセスできるはずのファイルやディレクトリにアクセスできなくなるのに、それが分からずに問い合わせが多発するから。」ということ。
これが問題になりやすいのは、Solaris10の環境だと思う。
デフォルトだと、最大16グループなので、ファイルサーバー的な利用においては、あっという間に16グループに達する。
とりあえず、OSの/etc/systemに「set ngroups_max=32」を書けば32まで増やせるが、これでも足りない環境だと対策のしようがない。
Solaris10 + ZFS + Sambaを薦めたいときの、一番の弱点。
smbd/sec_ctx.c
if (sys_setgroups(gid, ngroups, groups) != 0 && !non_root_mode()) {
smb_panic("sys_setgroups failed");
}
この理由について、こちらで述べられている。
http://old.nabble.com/sys_setgroups-:-migration-issues-from-3.0-series-to-3.2-3.3-series-td23103672.html
要約すると、「setgroups()に失敗したままだと、実際にはグループの権限を持っていないためアクセスできるはずのファイルやディレクトリにアクセスできなくなるのに、それが分からずに問い合わせが多発するから。」ということ。
これが問題になりやすいのは、Solaris10の環境だと思う。
デフォルトだと、最大16グループなので、ファイルサーバー的な利用においては、あっという間に16グループに達する。
とりあえず、OSの/etc/systemに「set ngroups_max=32」を書けば32まで増やせるが、これでも足りない環境だと対策のしようがない。
Solaris10 + ZFS + Sambaを薦めたいときの、一番の弱点。
登録:
投稿 (Atom)