Postfix で受信時に File too large というエラーをはいて バウンスしていた. Quota 制限もかけていないし,Maildir にしているのになんで?
調べてみると NetApp のディレクトリサイズの制限にかかっていた. そのユーザさんは,メールを読まないままためるいっぽうだったので, Maildir/new にあまりにもたくさんのファイルができて, 制限にかかってしまったようだ.
NetApp でのディレクトリサイズの設定は,
maxdirsize
で設定されている. NetApp のメモリ容量や CIFS を利用するかどうかといったことで 推奨値を設定することになる.
なお,設定値の単位はキロバイトのようだ.
参考 URL http://ompnix.blogspot.jp/2011/09/waflmaxdir-file-size.html
NetApp のボリュームを NFS, CIFS の両方でエクスポートし, セキュリティ形式を Mixed や NTFS にしている場合.
Windows からそのボリュームを CIFS でマウントし, その中のファイルの ACL を変更する(右クリックから「セキュリティ」などで アクセス権を変更する)と, NFS 側からは root からでもファイルにアクセスできない. (NFS エクスポートオプションで root=XXX.XXX.XXX.0/YY などとして, Linux でいう no_root_squashにしていても) (もちろん,NTFS ACL で, root にマッピングしている Windows ユーザに読み書き権限を与えてやっている場合は別)
これはこれで,セキュリティ的にはいいのだけれど, Unix 側からデータ移行などをするときや いざというときのファイル削除,パーミション変更などができない.
これに対し, NFS 側からは,NTFS の ACL にかかわりなく root で 読み書きできるようにするには,
options cifs.nfs_root_ignore_acl on
とする. もちろん,NFS エクスポートオプションで root=XXX.XXX.XXX.0/YY などとして, NFS 側からも root からのアクセスは root の権限で処理されるようにしておく 必要がある.
OnTAP 8.3.1 以降の Cluster mode では
-ignore-nt-acl-for-root {enabled|disabled}
オプションが使えるらしい.(未確認)
set -privilege advanced vserver nfs modify -vserver svm_HOGE -ignore-nt-acl-for-root enabled set -privilege admin
/etc/quotas を編集し,quota 容量を変更する.(/etc を NFS マウントしたサーバで行う)
NetApp にログインし,
# quota resize vol1 <-- vol1 のところは該当するボリューム名
確認
# quota report
> volume quota report -vserver svm_HOGE -volume vol_HOGE
(1)ページャ(more)を無効にする.
rows 0
もしくは
set -rows 0
これだと,TeraTerm でも表示は乱れない.
(2)フィールド区切りを "," にする.
set -showseparator ","
(3)表示単位を MB にする
set -units MB
単位はその他, "B","KB","GB","TB"などが使える.
(4)(1)~(3)は合わせわざができるので, たとえば,more をオフにして,単位を GB にするなら
set -units GB -rows 0
とできる.
(5)quota report コマンドで,ある容量以上ディスクを使用しているもののみ表示する この例は 1GB 以上
volume quota report -vserver svm_HOGE -volume vol_HOGE -disk-used >=1GB
(6)quota report コマンドで,必要なフィールドのみ表示する. この例は,ユーザ名,使用量,制限値 ただし,強制的に表示される項目もある.
volume quota report -vserver svm_HOGE -volume vol_HOGE -fields quota-target,disk-used,disk-limit
参考 https://library.netapp.com/ecm/ecm_download_file/ECMP1719718 p.26
cluster::vserver services name-service ldap client> modify-bind-password -client-config ldapclient1 -vserver svm_NFS1 Please enter password: Confirm password: cluster::vserver services name-service ldap client>
https://library.netapp.com/ecmdocs/ECMP1610208/html/GUID-55EF7FD7-4904-404A-9D53-93ECFFB00B22.html
https://library.netapp.com/ecmdocs/ECMP1610208/html/GUID-EB3438EC-21B1-401F-8190-D509E67D8E90.html
vserver export-policy rule create -vserver vserver_name -policyname policy_name -ruleindex integer -protocol {any|nfs3|nfs|cifs|nfs4|flexcache},... -clientmatch text -rorule {any|none|never|krb5|krb5i|ntlm|sys},... -rwrule {any|none|never|krb5|krb5i|ntlm|sys},... -anon user_ID -superuser {any|none|krb5|krb5i|ntlm|sys},... -allow-suid {true|false} -allow-dev {true|false}
例
export-policy rule create -policyname client_pol1 -clientmatch X.X.X.X/32 -superuser any -ruleindex 1
確認例
vserver export-policy rule show -vserver svm_NFS1 -policyname client_pol1
クライアントからのアクセス確認
vserver export-policy check-access -vserver svm_NFS1 -client-ip 1.2.3.4 -volume VOL1 -authentication-method sys -protocol nfs3 -access-type read-write -qtree QTREE