ONTAP 9.5でsambaドメインに参加できない & ONTAP 9.7で失敗

samba 4.11.6で作ったActive DirectoryにONTAP 9.5を参加させようとするとエラーになる。

ONTAP API が失敗しました: Failed to create the Active Directory machine account "ファイルサーバ名". Reason: LDAP Error: Strong authentication is required Details: Error: Machine account creation procedure failed [ 136] Loaded the preliminary configuration. [ 215] Successfully connected to ip ADサーバIP, port 88 using TCP [ 284] Successfully connected to ip ADサーバIP, port 389 using TCP [ 308] Unable to connect to LDAP (Active Directory) service on ADサーバホスト名 (Error: Strong(er) authentication required) **[ 308] FAILURE: Unable to make a connection (LDAP (Active ** Directory):AD名), result: 7609 . (エラー:13001)

調べたところ、sambaのglobal設定で「ldap server require strong auth = no」を設定する、とのこと。

これを設定し、sambaを再起動したところ、参加できた。


ONTAP 9.7にて、上記手順を実施した上で参加を試みたところ「Unable to connect to NetLogon service on」というエラーになった。

netapp::> vserver cifs create -vserver ファイルサーバ名 -cifs-server ファイルサーバ名 -domain AD名 -ou CN=Computers -default-site "" -status-admin up -comment "" -netbios-aliases ファイルサーバ名

In order to create an Active Directory machine account for the CIFS server, you
must supply the name and password of a Windows account with sufficient
privileges to add computers to the "CN=Computers" container within the
"AD名" domain.

Enter the user name: administrator

Enter the password:

Warning: An account by this name already exists in Active Directory at
         CN=ファイルサーバ名,CN=Computers,DC=xx,DC=xx.
         If there is an existing DNS entry for the name ファイルサーバ名, it must be
         removed. Data ONTAP cannot remove such an entry.
         Use an external tool to remove it after this command completes.
         Ok to reuse this account? {y|n}: y

Error: Machine account creation procedure failed
  [    31] Loaded the preliminary configuration.
  [   107] Created a machine account in the domain
  [   108] SID to name translations of Domain Users and Admins
           completed successfully
  [   113] Modified account 'cn=ファイルサーバ名,CN=Computers,dc=xx
           =CO,dc=JP'
  [   114] Successfully connected to ip xx.xx.xx.xx, port 88 using
           TCP
  [   129] Successfully connected to ip xx.xx.xx.xx, port 464
           using TCP
  [   216] Kerberos password set for 'ファイルサーバ名$@AD名'
           succeeded
  [   216] Set initial account password
  [   223] Successfully connected to ip xx.xx.xx.xx, port 445
           using TCP
  [   274] Successfully connected to ip xx.xx.xx.xx, port 88 using
           TCP
  [   297] Successfully authenticated with DC
           adserver.AD名
  [   322] Unable to connect to NetLogon service on
           adserver.AD名 (Error:
           RESULT_ERROR_GENERAL_FAILURE)
**[   322] FAILURE: Unable to make a connection
**         (NetLogon:AD名), result: 3
  [   322] Unable to make a NetLogon connection to
           adserver.AD名 using the new machine account

Error: command failed: Failed to create the Active Directory machine account
       "ファイルサーバ名". Reason: general failure.

netapp::>

このとき「vserver cifs security show -vserver ファイルサーバ名」で確認する「SMB? Enabled for DC Connections」は下記の通り。

netapp::> vserver cifs security show -vserver ファイルサーバ名

Vserver: ファイルサーバ名

                            Kerberos Clock Skew:                   - minutes
                            Kerberos Ticket Age:                   - hours
                           Kerberos Renewal Age:                   - days
                           Kerberos KDC Timeout:                   - seconds
                            Is Signing Required:                   -
                Is Password Complexity Required:                   -
           Use start_tls for AD LDAP connection:               false
                      Is AES Encryption Enabled:               false
                         LM Compatibility Level:  lm-ntlm-ntlmv2-krb
                     Is SMB Encryption Required:                   -
                        Client Session Security:                none
                SMB1 Enabled for DC Connections:               false
                SMB2 Enabled for DC Connections:      system-default
  LDAP Referral Enabled For AD LDAP connections:               false
               Use LDAPS for AD LDAP connection:               false

netapp::>

「SMB1 Enabled for DC Connections」をtrueに変更しても状況は変わらず。

Sambaサーバの /usr/local/samba/var/log.samba を確認すると、以下の出力があった。

[2020/08/07 14:26:55.226653,  0] ../../source4/rpc_server/netlogon/dcerpc_netlogon.c:284(dcesrv_netr_ServerAuthenticate3_helper)
  dcesrv_netr_ServerAuthenticate3_helper: schannel required but client failed to offer it. Client was ファイルサーバ名$

「schannel」というオプションが必要らしい。

Netlogon Issue “schannel required”」を参考に設定してみたところ、schannelというオプションはないというエラー…「Bug 13464 – smb.conf-configuration “server schannel = auto” needed in future versions」を見ると「server schannel = auto」が正しい模様。

/usr/local/samba/etc/smb.conf を下記の様に修正して、sambaを再起動したところ、ONTAP 9.7でのActive Directoryの参加が可能になった。

# Global parameters
[global]
        netbios name = ADサーバ名
        realm = AD名
        server role = active directory domain controller
        workgroup = AD名
        idmap_ldb:use rfc2307 = yes
        ldap server require strong auth = no
        server schannel = auto

[netlogon]
        path = /usr/local/samba/var/locks/sysvol/AD名/scripts
        read only = No

[sysvol]
        path = /usr/local/samba/var/locks/sysvol
        read only = No

塩漬けにしていたNetBackup 8.xがEXIT STATUS 5978でログインできない

テスト環境用にバックアップとして作成し、1年近く放置してあったNetBackup環境を起動させたところ、SSL証明書の有効期限切れでログインできなくなっていた。

例えばこんな感じ

# /usr/openv/netbackup/bin/nbcertcmd -getCrl
マスターサーバー [netbackup.adosakana.local] の最新の証明書失効リストの取得に失敗 しました。エラー: [5978]
EXIT STATUS 5978: 証明書失効リストの更新に失敗しました。
#

Windowsに入れたNetBackupサーバでGUIログインしようとした場合は、status: 7656 で失敗していたが、nbcertcmd -getCrlの結果は上記と同じく「EXTI STATUS 5978」 だった。

証明書の更新方法を探すと「Tomcat and nbwebsvc certificates are not renewed automatically on the master server with non-English locale.」を発見。

   1) /usr/openv/netbackup/bin/nbwmc -terminate

   2) /usr/openv/netbackup/bin/admincmd/nbcertconfig -u -i

   3) /usr/openv/netbackup/bin/admincmd/nbcertconfig -m

   4) On 8.0 and 8.1: /usr/openv/netbackup/bin/admincmd/nbcertconfig -t      

      On 8.1.1 and 8.1.2:  /usr/openv/netbackup/bin/admincmd/nbcertconfig -t -f

   5) /usr/openv/wmc/bin/install/configureWmc

   6) /usr/openv/wmc/bin/install/configureCerts

   7) /usr/openv/wmc/bin/install/setupWmc

   8) /usr/openv/netbackup/bin/nbwmc -start

   9) /usr/openv/netbackup/bin/nbcertcmd -getCACertificate

  10) /usr/openv/netbackup/bin/nbcertcmd -getCertificate -force

      If the operation fails, perform the steps at “Create a token” section then return to this step.

  11) Remove the /usr/openv/var/global/vxss/nbcertservice/install_token file

上記の手順をそのまま実行してみた。

# /usr/openv/netbackup/bin/nbcertcmd -getCrl
マスターサーバー [netbackup.adosakana.local] の最新の証明書失効リストの取得に失敗 しました。エラー: [5978]
EXIT STATUS 5978: 証明書失効リストの更新に失敗しました。
# /usr/openv/netbackup/bin/nbwmc -terminate
# /usr/openv/netbackup/bin/admincmd/nbcertconfig -u -i
Web サービスユーザー向け NetBackup AT サービス構成が正常に完了しました。
# /usr/openv/netbackup/bin/admincmd/nbcertconfig -m
Web サービス向け NetBackup AT サービス構成が正常に完了しました。
# /usr/openv/netbackup/bin/admincmd/nbcertconfig -t
セキュリティ証明書が tomcat に対して正常に生成されました。
# /usr/openv/wmc/bin/install/configureWmc
# /usr/openv/wmc/bin/install/configureCerts
# /usr/openv/wmc/bin/install/setupWmc
# /usr/openv/netbackup/bin/nbwmc -start
Starting NetBackup Web Management Console could take a couple of minutes ... started.
# /usr/openv/netbackup/bin/nbcertcmd -getCACertificate
CA 証明書は正常にサーバー netbackup.adosakana.local から格納されました。
# /usr/openv/netbackup/bin/nbcertcmd -getCertificate -force
ホスト証明書と証明書失効リストをサーバー netbackup.adosakana.local から正常に受信 しました。
# /usr/openv/netbackup/bin/nbcertcmd -getCrl
マスターサーバー [netbackup.adosakana.local] の証明書失効リストを正常に取得しまし た
# ls /usr/openv/var/global/vxss/nbcertservice/install_token
/usr/openv/var/global/vxss/nbcertservice/install_token
# ls -l /usr/openv/var/global/vxss/nbcertservice/install_token
-rw-r--r--. 1 nbwebsvc nbwebgrp 16  5月 27 12:11 /usr/openv/var/global/vxss/nbcertservice/install_token
# cat /usr/openv/var/global/vxss/nbcertservice/install_token
UPUKFQGMOPVUEQMI
#

これでログインできるようになりました。

LTOテープをファイルシステムとして使うLTFSについて 2022/11/09版

前回LTFSの現状についてまとめた記事から2年が経過した。
(「LTOテープをファイルシステムとして使うLTFSについて 2018/01/04版」)

LTO-8のテープメディアに関して発生していた特許騒動も解決し、ようやくLTO-8が普通に使える状況になりました。最近の状況について調査した。

2020/05/11 初回投稿
2020/11/11 部分修正
2021/02/04 LTFS 2.5.1対応
2021/03/10 IBM版の更新を反映
2022/04/11 ISOに関して追記。細々修正
2022/10/14 HPEとOracleの記述修正
2022/11/09 HPE StoreOpenがテープチェンジャ非対応ということが確定。オープンソース版追加


過去のLTFS関連記事
 「LTOテープをファイルシステムとして使うLTFS(2012/11/28)
 「テープ装置メーカ純正のLTFS一覧(2013/12/20更新)
 「IBM版LTFSをRHEL5で使ってみた(2013/05/20)
 「LTOテープをファイルシステムとして使うLTFSについて 2014/06/09版
 「LTOテープをファイルシステムとして使うLTFSについて 2015/11/18版
 「LTOテープをファイルシステムとして使うLTFSについて 2018/01/04版


LTFSとは?

LTO-5/LTO-6からは、メディアを2つの領域に分割して利用することが可能になった。
その機能を活かし、1本のテープメディアの中に、メディア内データの管理情報と、実データを分割して保存することを可能とした。
これにより、これまで実現出来なかった、1本のテープメディアだけで可搬性のあるファイルシステム構築、というものが可能となり、その実装として、LTFS(Linear Tape File System)というのがある。

使用用途としては、バックアップ用ではなく、長期保存のためのアーカイブ用や、大容量データの持ち運び用として使用されている。

LTFSを実現するためのソフトウェアについては、基本的には、IBMが大本のベースを作り、それを各LTOドライブメーカが、自社ドライブ向けにカスタマイズして提供しているような形となっている。

LTFSのバージョン(フォーマット)

LTFSには、バージョンがいくつかあり、現状の最新バージョンはLTFS v2.5
・LTFS 1.0
・LTFS 2.0 : ファイルインデックス関連で機能をいろいろ追加
・LTFS 2.1 : 2012/05/18リリース。LTFS2.0+シンボリックリンク
・LTFS 2.2 : 2013/12/21リリース。管理情報の改良。2016年4月にISO/IEC 20919:2016として登録
・LTFS 2.3 : 2016/03/08リリース。各ファイルのハッシュ情報とファイル名のエンコーディングを追加
・LTFS 2.4 : 2017/12/01リリース。ボリュームのロックなどの追加
・LTFS 2.5 : 2019/05/19リリース。(Revision Historyが規格書に書かれていない…)Incremental Indexの追加
・LTFS 2.5.1: 2020/08/18リリース。細かい修正。2021年7月にISO/IEC 20919:2021 として登録

「LTFSのバージョン」と「LTFSソフトウェアのバージョン」は別物なので注意が必要。
たとえば、OracleのLTFSソフトウェアは「ver1.2.7」だが、「LTFS 2.2」に対応している。

LTFS2.2対応は重要だが、LTFS2.3対応はそれほど重要ではないので、とりあえず、現行リリースされているLTFSソフトウェアはほぼLTFS2.2以降対応なので、あまり心配しなくてもよさそう。2022/11/09時点でもLTFS v2.5対応はまだ無い模様。

LTFSv2.5の規格書はSNIAの「Linear Tape File System (LTFS)」の「Linear Tape File System (LTFS) Format Specification」にてpdfで公開されている。
LTFS v2.5で追加された「Incremental Backup」というのは、いままでは「フルバックアップ」と「前のバックアップとの増加分のバックアップ(Diff)」という2つの概念だったものが、「前のフルバックアップからの増加分のバックアップ(Incr)」が追加されたというもので、バックアップソフト側の概念としては昔からあるものになる。

その他、いろんな情報は、LTOの規格団体の「LTFS Overview」にある。

LTFSソフトウェアの種類

LTFSの公式認証を取得しているLTFSソフトウェアについては、「LTFS Compliance Verification」にて紹介されていたが、2021/03/10現在では該当ページが消滅している。

2020/05/11時点では以下の8個が登録されていた・・・「Date tested」の最新が2016年というあたりメンテナンスされていないのがわかるページだったので消滅も仕方がない感じである。

CompanyProductVersionLTFS VersionLTO GenerationDate tested
QuantumQuantum Scalar LTFS Appliance2.0.22.0.1LTO5 & 69/11/13
HPHP StoreOpen Standalone2.1.02.1.0LTO5 & 69/11/13
IBMIBM Single Drive Version1.3.02.1.0LTO5 & 69/11/13
IBMIBM LTFS Library EditionV1R32.1.0LTO5 & 610/2/13
QuantumQuantum LTFS2.1.02.1.0LTO5 & 611/29/13
HPHP StoreOpen Automation1.2.02.0.1LTO5 & 611/29/13
Spectra LogicSpectra Logic Black Pearl1.12.2LTO5 & 69/11/15
MT-ConsultingNODEUM1.12.1.0LTO5 & 67/05/16

なお、LTFSソフトウェアのバージョンと、対応しているLTFSフォーマットのバージョンに直接の関連性は無いので注意が必要。

また、LTOの規格団体の「LTFS Overview」のページに「Get Started Using LTFS」として紹介されているものは「HPE LTFS」「IBM LTFS」「Quantum LTFS (リンクは死んでいる)」の3種類である。


現状開発が継続していると思われるLTFSソフトウェアについて

・オープンソース版

よく探したらgithubにオープンソース版の開発ツリーがあった

公式: https://github.com/LinearTapeFileSystem/ltfs

単体ドライブ用で、IBM,HP,Quantumドライブに対応している

v2.4.0.0リリースからgithubに移動したらしい。

・IBM

公式: IBM Spectrum Archive(IBM Linear Tape File System)

IBMのLTFSは「IBM Spectrum Archive」という商品名になっている。テープベンダのSpectra Logicとは関係がない。

サポートURLは以前は各プロダクト用ページがあったが、2022/11/09現在は見当たらず「IBM Support」から検索、という感じのようだ。それぞれ「IBM Spectrum Archive Single Drive Edition (SDE)」「IBM Spectrum Archive Library Edition (LE)」「IBM Spectrum Archive Enterprise Edition (EE)」となる。

ドキュメントは「IBM Spectrum Archive Single Drive Edition (SDE) documentation」「IBM Spectrum Archive Library Edition (LE) documentation」「IBM Spectrum Archive Enterprise Edition (EE) documentation」。

また、アップデート用ファイルの入手は、「Fix Central」にて「製品グループ:System Storage」-「Tape Systems」-「Tape drives and software」の下にある「IBM Spectrum Archive Single Drive Edition(SDE) (旧名:LTFS Single Drive Edition)」や「IBM Spectrum Archive Library Edition(LE)(旧名:LTFS Library Edition)」「IBM Spectrum Archive Enterprise Edition(EE)」を選択することで入手する。

なお、LEとEEの方はアップデータのみの配布で、元になるソフトウェアについては、IBMから別途入手する必要がある。
基本的には、Single Drive Edition(SDE)が、他の全てのLTFSソフトウェアの原型になっているもの・・・という感じである。

2022/11/09時点での最新は、
IBM Spectrum Archive Enterprise Edition: ver1.3.3.0(2022/06/30) LTO-9対応/LTFS2.4対応
IBM Spectrum Archive Library Edition : ver2.4.5.0(2022/06/30) LTO-9対応/LTFS2.4対応
IBM Spectrum Archive Single Drive Edition: ver2.4.5.0(2022/06/30) LTO-9対応/LTFS2.4対応

・HP

公式: HPE StoreOpen and Linear Tape File System (LTFS) Software
公式2: HPE StoreOpen and Linear Tape File System (LTFS) Software
日本語情報: HP LTFS (Linear Tape File System)
HPEサポートセンター: HPE LTFS Software

以前は単体ドライブ向けの「日本語の導入マニュアル」が公開されていたがアクセスできなくなっている。

ソフトウェア関連は「HPE LTFS Software」からたどる事になる。

ソフトウェアの入手は、以前は単体ドライブ向けの「HP StoreOpen Standalone」とチェンジャー向け「HP StoreOpen Automation」が分かれていたが、現在は「HPE StoreOpen Software(LTFS)」に統合されているに統合されたことになっているのだが、試してみた感じでは単体ドライブ用の機能しかなかった。

この件について「HPE StoreOpen Software Linux and Mac 3.5 User Guide Frequently asked questions」にWindows向けStoreOpen については ver 3.4.0 以降ではライブラリ/チェンジャーに対応しているが、Linux向けについては単体ドライブしかサポートしない、との記載があることを確認した

Q: Can I use LTFS with tape libraries?
A: From v3.4, the Windows version of StoreOpen Software does offer support for HPE’s range of tape libraries; however the Linux & Mac versions do not provide such support. Tape drives located in tape libraries can be used, but there is no support for listing or changing cartridges. It may be possible to use other third party utilities for such purposes but that is beyond the scope of StoreOpen Software and HPE is unable to support customers experimenting with such configurations.

2022/11/09時点での最新は、
HP StoreOpen Software : ver3.5.0(2022/01/24) LTO-9対応/LTFS 2.4対応
また、ソースコードもダウンロードできる。

・Quantum

公式: Linear Tape File System

ソフトウェア入手は上記の公式ページの「Software」タブから行う。
ソースコードについては、LTFS Open Source Filesから。どちらも2019年から更新されていない。

2022/11/09時点での最新は下記
Linux/Mac : ver2.4.0.2(2019/03) LTO-8/LTFS2.4対応
Windows Model Bドライブ向け: ver3.0(2016/04) LTO-6以降という曖昧な記述のみ
Windows Model Cドライブ向け: ver2.4.0.2(2018/04) LTO-8/LTFS2.4対応。おそらくLinux/Mac向けと同じベース

Linux版のReleasenoteには、Quantum LTOドライブのほか、IBM LTOドライブにも対応という記述がある。

・Spectra Logic

公式:Linear Tape File System (LTFS)

LTFSを紹介するページはあるものの、LTFSを利用するソフトウェアに関するページが見当たらない。
「Spectra libraries are compatible with LTFS software and hardware solutions from a range of providers.」とあるので自社では直接提供していないようだ。

・MT-C NODEUM

公式:NODEUM

リストには「MT-Consulting」とあるが「MT-C」と改称した模様。
階層型ストレージとして、ディスクとテープなどを組み合わせて使用できるようにする、ソフトウェアのみを販売している?



リストに載っていないか死んだLTFS

・Quantum Scalar LTFS Appliance

公式:Scalar LTFSアプライアンス

ハードウェアがセットになったアプライアンス。
これの下にFC経由などでテープチェンジャーを繋いで使うもの。

バックアップアプライアンスに統合されたんだと思われる。

・TANDBERG DATA

2022/04/11時点のメーカWebには掲載が無くなっていたが、2022/11/09に再確認したら、「LTO Ultrium LTFS」でページは復帰していた。しかし、LTFS Softwareの入手先として「IBM SPECTRUM ARCHIVE SINGLE DRIVE EDITION」とIBM版を直接示すようになっているため、独自開発からは撤退した模様。

公式: LTFS for Archive

以前は「LTFS for Big Data」という扱いだったが、「Archive」にかえたようだ。

ソフトウェアの入手は「LTFS Downloads for LTO-5/6(legacy drive)」か「LTFS Downloads for OV-TAD LTO(LTO-7/8)」から行う。

2021/03/10時点での最新は
LTO-5/6向け: ver 3.3.0
LTO-7/8向け: ver 2.4.1.2

ページは英語表記だが、ドキュメントアイコンが日の丸になってるとおり、ダウンロードできるドキュメントはLinux用/Windows用が日本語化されている。
一部TANBERGカスタマイズが入っているようだが、基本的にはIBM Archive Single Drive Edition相当品。

・Oracle

2022/04/11時点ではメーカWebから記載が消えた。ossサイトにあったものも消えた。
2022/10/14時点では、https://lb-oss.oracle.com/projects/ltfs/ から単体ドライブ用のltfs-1.2.7が入手可能となっていた。

公式: Oracle’s StorageTek Linear Tape File System, Open Edition
以前はOracle製品としてのページ: Oracle StorageTek Linear Tape File System (LTFS), Open Edition and Library Edition があったが2021/03/10現在では消滅しているので基本は自社提供はしていないようだ。

現状でも、Oracle版のLTFSソフトウェアのうち単体ドライブ向けの入手は「https://oss.oracle.com/projects/ltfs/files/」から行うことはできる。(ライブラリ向けLTFS-LEは入手不可)

2021/03/10時点での最新は2015年時点と変わらず
ltfs-1.2.7(2015/10/07)

IBM LTFS 2.2.0.2とHP LTFS 2.2.1を組み合わせ、Oracle/StorageTek用の設定を入れたもの。
Oracle LTOドライブ,IBM LTOドライブ,HP LTOドライブに対応している。

LTFS For Dummies」という51ページのPDFを公開しているのが興味深い。
??? For Dummiesは、アメリカで販売されているいろんな分野の初心者向け書籍シリーズ。「ダミー人形向けの」→「バカでも分かる」というものなんだけど・・・このLFS for Dummies、解説具合が微妙過ぎるなぁ・・・

StorageTek Linear Tape File System, Library Edition Japanese Online Documentation」にて日本語ドキュメント群がhtml/pdfで公開されている。以下の4種類がすべてちゃんとした日本語なのは貴重。

StorageTek Linear Tape File System, Library Edition 計画およびインストールガイド
StorageTek Linear Tape File System, Library Edition 管理ガイド
StorageTek Linear Tape File System, Library Edition Web サービスアプリケーションプログラミングインタフェースプログラマーズガイド
StorageTek Linear Tape File System, Library Edition セキュリティーガイド


LTFS関連のツール紹介

・LTOpers

公式: https://github.com/amiaopensource/ltopers

LTFSを使いやすくするためのBASHスクリプトのフロントエンドプログラム
Quantum LTFS 2.4向けで、Homebrewでインストールし、ということなので、MacOSX向けとして作られているようだが、スクリプトを読むと.linuxbrewディレクトリがあった場合の条件分岐があるので、Linuxでも使えそう。


ドキュメント紹介

・富士通のドキュメント

富士通のWebにいくつか日本語解説ページがある。

カートリッジテープに記録されているデータをファイル形式で扱える LTFSオプション

書庫探(しょこたん) > ストレージ技術用語解説 > LTFSとは

マニュアル一覧にて「テープライブラリ (ETERNUS LT)」で検索して出てくる「ETERNUS LT series 用 LTFSオプション ユーザーズガイド

とくに「LTFSオプション ユーザーズガイド」はLTFS全般に関して日本語で解説されているよい文章と言える

コマンド操作についてはチェンジャー/オートローダー利用時の使い方がメインであるが、単体ドライブの場合についてもだいたい同じである。

・Oracleのドキュメント

いまは更新が停止しているがOracle版ltfsについては日本語マニュアルが完備している。

StorageTek Linear Tape File System, Library Edition Japanese Online Documentation Library
Release 1.0

 ・Planning and Installation Guide
 ・Administration Guide
 ・Application Programming Interface Guide
 ・Security Guide

samba 4で構築したドメインにNetApp 9.5が登録できない

注:この記事での事象はsamba 4で使用していた証明書の期限切れが原因でした。
「LDAP Error: Strong authentication is required Details」もしくは「「Unable to connect to NetLogon service on」」というエラーがでる場合については別途「ONTAP 9.5でsambaドメインに参加できない & ONTAP 9.7で失敗」という記事にしています。


テスト環境作成のためNetAppシミュレータの9.5P6を作ってsamba 4で構築したActive Directory環境に登録しようとした・・・

netapp95sim::*> vserver cifs create -cifs-server netappcifs -domain ad.osakana.net -ou CN=Computers -vserver netappcifs -netbios-aliases netappcifs

In order to create an Active Directory machine account for the CIFS server, you must supply the name and password of a
Windows account with sufficient privileges to add computers to the "CN=Computers" container within the "AD.OSAKANA.NET"
domain.

Enter the user name: administrator

Enter the password:

Error: Machine account creation procedure failed
  [   215] Loaded the preliminary configuration.
  [   267] Successfully connected to ip 172.17.44.49, port 88 using
           TCP
  [   342] Successfully connected to ip 172.17.44.49, port 636 using
           TCP
  [   379] Required certificate with CA ADSERVER.ad.osakana.net is
           not installed
  [   381] Unable to start LDAPS: Can't contact LDAP server
  [   381] Additional info: error:14090086:SSL
           routines:ssl3_get_server_certificate:certificate verify
           failed
  [   381] Unable to connect to LDAP (Active Directory) service on
           adserver.ad.osakana.net (Error: Can't contact LDAP
           server)
**[   381] FAILURE: Unable to make a connection (LDAP (Active
**         Directory):AD.OSAKANA.NET), result: 7642

Error: command failed: Failed to create the Active Directory machine account "netappcifs". Reason: LDAP Error: Cannot
       contact the LDAP server.

netapp95sim::*>

エラー発生。

なんか調べたところ、active-directoryというコマンドでも登録できるらしいのでそれでもテストしてみる。

netapp95sim::*> active-directory create -vserver netappcifs -account-name adserver -domain ad.osakana.net
  (vserver active-directory create)

In order to create an Active Directory machine account, you must supply the name and password of a Windows account with
sufficient privileges to add computers to the "CN=Computers" container within the "AD.OSAKANA.NET" domain.

Enter the user name: administrator

Enter the password:

Error: Machine account creation procedure failed
  [   179] Loaded the preliminary configuration.
  [   230] Successfully connected to ip 172.17.44.49, port 88 using
           TCP
  [   298] Successfully connected to ip 172.17.44.49, port 636 using
           TCP
  [   333] Required certificate with CA ADSERVER.ad.osakana.net is
           not installed
  [   335] Unable to start LDAPS: Can't contact LDAP server
  [   335] Additional info: error:14090086:SSL
           routines:ssl3_get_server_certificate:certificate verify
           failed
  [   336] Unable to connect to LDAP (Active Directory) service on
           adserver.ad.osakana.net (Error: Can't contact LDAP
           server)
**[   336] FAILURE: Unable to make a connection (LDAP (Active
**         Directory):AD.OSAKANA.NET), result: 7642

Error: command failed: Failed to create the Active Directory machine account "ADSERVER". Reason: LDAP Error: Cannot
       contact the LDAP server.

netapp95sim::*>

同じようにエラー。

この後いろいろ試行錯誤した結果、自己証明CAをNetAppに入れればいいのでは?とやってみた。(「クラスタまたはSVMがクライアントであるSSLサーバを認証するためのサーバCA証明書のインストール」)

netapp95sim::*> security certificate install -vserver netappcifs -type server-ca

Please enter Certificate: Press <Enter> when done
-----BEGIN CERTIFICATE-----
<sambaの/usr/local/samba/private/tls/ca.pemの内容を張り付け>
-----END CERTIFICATE-----


Error: command failed: The certificate has expired.

netapp95sim::*>

ん?「The certificate has expired.」???

samba公式「Configuring LDAP over SSL (LDAPS) on a Samba AD DC」の「Verifying the certificate」に書いてある手法で確認してみます。

# ls -l  /usr/local/samba/private/tls
合計 12
-rw-r--r--. 1 root root 2041  3月 27  2018 ca.pem
-rw-r--r--. 1 root root 2045  3月 27  2018 cert.pem
-rw-------. 1 root root 3243  3月 27  2018 key.pem
#

# openssl verify /usr/local/samba/private/tls/cert.pem -CApath /usr/local/samba/private/tls/ca.pem
/usr/local/samba/private/tls/cert.pem: O = Samba Administration, OU = Samba - temporary autogenerated HOST certificate, CN = ADSERVER.AD.OSAKANA.NET
error 20 at 0 depth lookup:unable to get local issuer certificate
Error opening certificate file -CApath
140285523859344:error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen('-CApath','r')
140285523859344:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:404:
unable to load certificate
/usr/local/samba/private/tls/ca.pem: O = Samba Administration, OU = Samba - temporary autogenerated CA certificate, CN = ADSERVER.AD.OSAKANA.NET
error 18 at 0 depth lookup:self signed certificate
O = Samba Administration, OU = Samba - temporary autogenerated CA certificate, CN = ADSERVER.AD.OSAKANA.NET
error 10 at 0 depth lookup:certificate has expired
OK
#

はい。証明書の有効期限切れでした。

手順がめんどいので、/usr/local/samba/private/tlsにあるファイルをリネームしてから「systemctl stop samba-ad-dc.service」「systemctl start samba-ad-dc.service」で強制再作成させました。

rsyncによるディレクトリ同期を行う際、並列実行により高速化する手法

rsyncを高速化するために、分散して実行することにした。

全部を1つのスクリプトとしてもいいのだが、デバグがしやすいように分割して作業を行えるようにしている。

また、下記の記述はLinuxの/usrをコピーすることを想定している。環境に応じて書き換えること。

まず、/usr/xxx以下にあるファイルまでをコピーするために以下を実行する。

# rsync --archive -v --exclude="*/*/" /usr/ /mnt/vol/voltest

このexcludeオプションをつけている場合、「/usr/xxx/yyy」のファイルとシンボリックリンクはコピーされる。しかし「/usr/xxx/zzz/」のディレクトリはコピーされない。

次に、「/usr/xxx/zzz/」のディレクトリ一覧を取得する。

# find /usr -mindepth 2 -maxdepth 2 -type d -print

このディレクトリ一覧を下記のperlスクリプトに食わせる。(下記スクリプトは” find /usr -mindepth 2 -maxdepth 2 -type d -print > list.txt”で取得したlist.txtを使う想定)

#!/usr/bin/perl

use threads;
use Thread::Queue;

my $LOGDIR="/root/test";
my $MAXSESSION=5;

my $sourcepathbase="/usr";
my $destpathbase="/mnt/vol/voltest";

my $stream = Thread::Queue->new;

open(FILE,"list.txt");
while(my $tmp=<FILE>){
        $stream->enqueue("$tmp");

}
close(FILE);

sub SyncExecute{
        while(my $str = $stream->dequeue){
                # 改行削除
                $str =~ s/\n//ig;
                $str =~ s/\r//ig;
                # ログ出力用ファイル名
                my $filename=$str;
                $filename =~ s/\//-/ig;
                $filename =~ s/\.//ig;
                $filename =~ s/-$//ig;
                $filename =~ s/#//ig;
                $filename =~ s/^-//ig;
                $filename =~ s/ //ig;
                my $logfile="$LOGDIR/test-$filename.log";
                # rsync元と先の処理
                my $tmp,$st,$ed;
                my $sourcepath,$destpath;
                $tmp=substr($str,0,1);
                if($tmp eq "/"){
                        $sourcepath=$sourcepathbase.$str."/";
                        $destpath=$destpathbase.$str;
                }else{
                        $sourcepath=$sourcepathbase."/".$str."/";
                        $destpath=$destpathbase."/".$str;
                }
                `date >> $logfile`;
                print "rsync -v --archive $sourcepath $destpath >> $logfile 2>&1 \n";
                `rsync -v --archive $sourcepath $destpath >> $logfile 2>&1 `;
                `date >> $logfile`;
                #`sleep 5`;
        }
}


my @kids;
foreach(1..$MAXSESSION){
        my $kid = threads->new(\&SyncExecute,$stream);
        push(@kids,$kid);
        $stream->enqueue(undef);
}


print "wait\n";

foreach(@kids){
        my ($return) =$_ -> join;
}

このスクリプトは、rsyncの同時実行数5で、並列にrsyncを実行していくものになっている。

実行したサーバの負荷状況に応じて「my $MAXSESSION=5;」で設定している 同時実行数 を調整する。あまり大きくしすぎるとサーバからの応答が遅くなりすぎるのでほどほどに・・・


2020/03/10追記

上記で実行するrsyncコマンドはハードリンクの処理を行わないものとなっている。

このため、ハードリンクされているファイルがある場合、コピー先のファイルが1つではなく複数別個のものとしてコピーされる。

ハードリンクをそのままコピーしたい場合は「–hard-links」オプションを追加する必要があるのだが、ハードリンク処理の効力範囲は同一プロセス内で処理すること、という条件があるため、今回のような分割処理して高速化する、という場合には不適切となっている。

このため、ハードリンクファイルがある場合は、初回同期は分割処理で行い、2回目はディレクトリ全体を–hard-linksオプションをつけて1プロセスで処理してハードリンク処理を行わせる、という手法をとる必要がある。

なお、ハードリンク処理が完了したあと、分割処理の対象となった場合、すでにファイルが存在しているので再コピーされる、ということは発生しない。