Data Domain:如何針對 Boostfs 安裝、組態及掛接問題進行故障診斷
Summary: 本文可協助使用者識別和解決一些常見的 BOOSTFS 安裝和組態問題。
Symptoms
BOOSTFS 是一種軟體元件,可安裝在某些作業系統中,其可讓您在不使用任何特定備份應用程式的情況下,執行 BOOST 備份至 DataDomain,同時還能利用使用支援 BOOST 的備份應用程式 (例如 Netbackup、Networker 及 Avamar) 所附帶的一些功能。
如需更多「切中要害」的安裝和使用率詳細資料,請查看 Data Domain:加速處理 DataDomain BOOST FS 的組態步驟和詳細 資料知識庫文章。
然而,本知識文章包含一些在設定和使用 BOOSTFS 時可能會發現的典型問題,以便客戶快速參考這些常見錯誤、錯誤訊息以及解決這些問題的方法。典型的此類錯誤是“無法將 Boostfs 安裝到 Linux 伺服器上”、“Boostfs 掛接失敗並出現錯誤”或“備份或還原失敗並出現錯誤”,僅舉幾例。
Resolution
1.安裝 BOOST FS 軟體
時,必要的相依性遺失如果無法在用戶端 Linux 作業系統中安裝提供的 BOOSTFS 軟體 RPM,請先判斷 BOOSTFS 軟體所需的套件相依性:
# rpm -qpR DDBoostFS-1.0.0.1-539441.rhel.x86_64.rpm 保險絲 >= 2.8 保險絲庫 >= 2.8 /賓/什 /賓/什 /賓/什 /賓/什 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(壓縮檔名) <= 3.0.4-1
在上面的例子中,軟體包要求安裝FUSE(USEr空間中的文件系統)二進位檔和庫(BOOSTFS基於Linux的FUSE),以及任何提供shell(sh)和預設RPM庫的軟體包。因此,此 BOOSTFS 套件應可正常安裝在已執行「rpm」的 Linux 系統中。
2.無法掛接 /mnt/mountpoint/:未預期的錯誤
嘗試透過 BOOSTFS 在 Linux 用戶端本機掛接遠端 DD 儲存裝置時,可能會收到上述錯誤。檢閱 Linux 用戶端中的 BOOSTFS 記錄檔。例如,在下面的第一個示例中,密碼箱檔不包含主機 dd2500-abc.datadomain.com 的條目:
# 更 /opt/emc/boostfs/log/ddboostfs_0_0.log Jul 29 03:45:25 22795 3267069888 [E] bfs_lockbox_get_user_info:在組態檔案 /opt/emc/boostfs/lockbox/boostfs.lockbox 中找不到金鑰項目 dd2500-abc.datadomain.com:LSU2。找不到要求的加密箱項目。 Jul 29 03:45:25 22795 3267069888 [E] bfs_conn_lookup:節點 0 檔 /.boostfs_sysinfo 的連接查找失敗。(0 個連線) Jul 29 03:45:25 22795 3267069888 [I] bfs_node_lookup:無法取得檔案 /.boostfs_sysinfo 的連線 Jul 29 03:45:25 22795 3267069888 [E] bfs_initialize_mntopts:初始化失敗
在這種情況下,解決方案是新增加密箱項目 以將目的地 DD 主機和儲存裝置掛接至本機語法將類似於以下範例:
# /opt/emc/boostfs/bin/boostfs lockbox set -u sysadmin -d dd2500-abc.datadomain.com -s LSU2 輸入儲存裝置使用者密碼: 再次輸入儲存裝置使用者密碼以確認: 密碼箱條目集
在本機 BOOSTFS 用戶端記錄中可能看到的另一個錯誤是無法從用戶端解析 DD 主機名稱,例如:
# 更 /opt/emc/boostfs/log/ddboostfs_0_0.log Jul 29 04:05:50 22882 3322156992 [E] bfs_conn_open:連接失敗(0 個連接):5037 Jul 29 04:05:50 22882 3322156992 [E] bfs_conn_lookup:節點 0 檔 /.boostfs_sysinfo 的連接查找失敗。(0 個連線) Jul 29 04:05:50 22882 3322156992 [I] bfs_node_lookup:無法取得檔案 /.boostfs_sysinfo 的連線 Jul 29 04:05:50 22882 3322156992 [E] bfs_initialize_mntopts:初始化失敗
在這種情況下,解決方案是將靜態 HOS 映射添加到 Linux 用戶端的 /etc/host 檔中,或者在正在使用的 DNS 伺服器中配置映射。
3.掛載點 /mnt/掛載點為非空。
BoostFS 無法掛接至非空掛載點。請嘗試安裝至空的固定點。
上述訊息表示指定的掛接點 (/mnt/mountpoint) 無法用來顯示遠端 DD 儲存裝置,因為掛載點之前無法有其他檔案系統掛接,或包含任何內容。/mnt/mountpoint/ 在 Linux 用戶端中必須是空且未使用的目錄。如果路徑已具有裝載,則必須指定另一個裝載點。例如:
# 掛載 /dev/mapper/VG00-lv_root on / 類型 ext4 (rw) /dev/sda1 on /boot type ext4 (RW) BoostFS on /mnt/mountpoint 類型 fuse.boostfs (RW、Nosuid、NodeV)
在這種情況下,遠端 DD 儲存裝置已掛接在 /mnt/mountpoint/ 下,因此無法再次掛接至相同目錄。
4.DDBoostfs 掛載掛起 (可能需要超過 10 分鐘才能傳回)
當 Linux 用戶端和目標 DD 裝置之間的防火牆將流量丟棄至 TCP 連接埠 111 和 2049 時,可能會發生這種情況。確定 Linux 用戶端可將 DD 連線至 TCP 連接埠 111 和 2049,然後再試一次,例如:
# /opt/emc/boostfs//bin/boostfs mount -d dd2500.domain.com -s LSU2 /mnt/mountpoint/
這是在這種情況下在 Linux 用戶端 BOOSTFS 紀錄中看到的內容範例:
# 更 /opt/emc/boostfs/log/ddboostfs_0_0.log Jul 27 06:34:53 32762 3724339136 [E] bfs_conn_open: 連線失敗 (0 個連線):5037 Jul 27 06:34:53 32762 3724339136 [E] bfs_conn_lookup:節點 0 檔案 /.boostfs_sysinfo 的連線查詢失敗。(0 個連線) Jul 27 06:34:53 32762 3724339136 [I] bfs_node_lookup:無法取得檔案 /.boostfs_sysinfo 的連線 Jul 27 06:34:53 32762 3724339136 [E] bfs_initialize_mntopts:初始化失敗
5.嘗試存取或列出掛載點下的內容時不允許的作業
# ls -l /mnt/mountpoint/ ls: 閱讀目錄 .:不允許的操作 共 0 條
問題可能是沒有遠端 DD 連接埠 111 和 2049 的 TCP 連線,或密碼箱驗證不知何故已過期。確定 Linux 用戶端仍可從指定的連接埠連線至 DD,然後再次嘗試為遠端 DD、儲存裝置和 BOOST 使用者設定加密箱。
6.使用 Kerberos 驗證,存取不足或儲存裝置不存在。
# boostfs mount -s LSU3 -d dd2500.domain.com /mnt/mountpoint/ 存取不足或儲存裝置 LSU3 不存在
對加密箱使用 Kerberos 認證時,最可能的錯誤原因是 Kerberos 認證票證已過期。從 Linux 檢查提到的票證,如下所示:
# /opt/emc/boostfs/bin/boostfs kerberos query -s LSU3 -u username 客戶主體:username@DOMAIN.COM 有效的起始時間:Tue Aug 23 11:02:49 2016 到期:Tue Aug 23 21:01:07 2016 續約期限截止:Tue Aug 30 11:02:49 2016 服務主體:krbtgt/DOMAIN。COM@DOMAIN.COM
在 DDR 上,當設定加密箱並掛接 BOOSTFS 時,確認指派至儲存裝置的 BOOST 使用者與 Linux 用戶端上的使用者相符 (AD 使用者名稱和儲存裝置使用者名稱必須完全相同):
# ddboost 儲存裝置裝置顯示 名稱 Pre-Comp (GiB) 狀態使用者報告實體租戶單元 大小 (MiB) --------------- -------------- ------ -------- --------------- ----------- LSU3 0.0 RW 使用者名稱 - - --------------- -------------- ------ -------- --------------- -----------
此外,請小心確認 DD 中的日期/時間,Linux 用戶端和 Kerberos 伺服器 (AD) 的間隔不超過 5 分鐘,否則可能會發生因時間不一致而導致票證過期的問題。
以下是範例,說明當時間相差超過 5 分鐘時,我們會在 DD 記錄中看到的情況:
# log watch debug/ddfs.info 08/23 18:52:09.654(TID 0x7f738141fb00):NFS3 接受 3000004b6 552 來自 10.64.229.125:55042 08/23 18:52:09.660 (TID 0x7f738140c890):[dd_rpc2_nfs x3000004b6] dd_rpc_gss_print_error:117 - 事件gss_error,gss_accept_sec_context失敗:MAJ=0xd0000,最小值=0x96c73a25 08/23 18:52:09.660 (TID 0x7f738140c890):[dd_rpc2_nfs x3000004b6] dd_rpc_gss_print_error:126 - 事件gss_error,未指定的 GSS 失敗。 次要代碼可能會提供更多資訊 08/23 18:52:09.660 (TID 0x7f738140c890):[dd_rpc2_nfs x3000004b6] dd_rpc_gss_print_error:141 - 事件gss_error,時鐘偏差太大 08/23 18:52:09.660 (TID 0x7f738140c890):[dd_rpc2_nfs x3000004b6] dd_rpc_gss_accept:217 - 事件 gss_accept_failed,MAJ = 851968,min2529638949 08/23 18:52:09.660 (TID 0x7f73814233f0):NFS3 已銷毀 TCP 3000004b6
這些是 BOOSTFS Linux 主機記錄:
# 更 /opt/emc/boostfs/log/ddboostfs_0_0.log Aug 23 18:04:39 1044 2019465280 [E] bfs_conn_open:連接失敗(0 個連接):5075 Aug 23 18:04:39 1044 2019465280 [E] bfs_conn_lookup:節點 0 檔案 /.boostfs_sysinfo 的連線查詢失敗。(0 個連線) Aug 23 18:04:39 1044 2019465280 [I] bfs_node_lookup:無法取得檔案 /.boostfs_sysinfo 的連線 Aug 23 18:04:39 1044 2019465280 [E] bfs_initialize_mntopts:初始化失敗
7. 使用 Kerberos 認證的 Boostfs 掛接失敗,並出現以下錯誤「無法存取加密箱,或找不到加密箱項目」
# /opt/emc/boostfs/bin/boostfs mount -s LSU3 -d dd2500.domain.com /mnt/mountpoint/ 無法存取加密箱或找不到密碼箱項目
如果您打算在「/opt/emc/boostfs/etc/boostfs.conf」中使用 BOOSTFS 組態選項,請確認檔案中的「[global]」設定,並確定它沒有被註解掉 (為了讓任何全域選項正常運作,必須取消註解關鍵字「[global]」)。默認情況下會註釋此關鍵字。
BOOSTFS「/opt/emc/boostfs/etc/boostfs.conf」組態檔案範例內容:
# 選項值對后不允許註釋。 # ############################################################################# [全球] # Data Domain 主機名稱或 IP 位址 # data-domain-system=dd2500.domain.com
您會在 Linux 用戶端 BOOSTFS 記錄中看到的輸出範例:
# 更 /opt/emc/boostfs/log/ddboostfs_0_0.log Aug 24 08:23:35 27227 3565582272 [E] bfs_lockbox_get_user_info:在組態檔案 /opt/emc/boostfs/lockbox/boostfs.lockbox 中找不到金鑰項目 dd2500-rtp2.techsupp.local:LSU3。找不到要求的加密箱項目。 Aug 24 08:23:35 27227 3565582272 [E] bfs_conn_lookup:節點 0 檔 /.boostfs_sysinfo 的連接查找失敗。(0 個連線) Aug 24 08:23:35 27227 3565582272 [I] bfs_node_lookup:無法取得檔案 /.boostfs_sysinfo 的連線 Aug 24 08:23:35 27227 3565582272 [E] bfs_initialize_mntopts:初始化失敗
此外,與用於設定加密箱或對應目標 DD 的主機名稱相比,在 Linux 用戶端「mount」命令中使用不同的主機名稱、儲存單元名稱或 BOOST 使用者名稱所導致。確定 DD、BOOSTFS 加密箱和「mount」命令的所有名稱都相符。
8. 嘗試設定「boostfs」使用者認證失敗,並顯示下列錯誤 :
bfs_krb5_err_handler:Kerberos 錯誤:-1765328360 [ERROR_MESSAGE=無法取得初始登入資料。]
無法設定 Kerberos 認證
1.使用 Active Directory 使用者認證
登入 DC 2,確認 Active Directory 使用者認證正確無誤。確認 Linux 用戶端和 Kerberos 伺服器上的時間相隔不超過 5 分鐘。Kerberos 驗證要求時鐘時間相隔不超過 5 分鐘。
9.在 Linux 用戶端中掛接 BOOSTFS 時,會以錯誤結束「fusermount: mount failed:不允許操作。
這可能是由於多種原因造成的。「fusermount」是基礎 Linux 命令,最終會使用 FUSE 在 Linux 用戶端命名空間本機掛接 DD BOOST 儲存裝置。這樣做需要特殊許可權。這就是為什麼「fusermount」在 Linux 用戶端中是 SUID 二進位檔:
# ls -l /usr/bin/fusermount -rwsr-xr-x。1 根根 38680 May 11, 2019 /usr/bin/fusermount
成為 SUID 二進位意味著無論使用者在嘗試掛接儲存裝置時執行什麼動作,「fusermount」都會以「root」權限執行如果「fusermount」不是 SUID 至 root,則只有 Linux 用戶端 root 使用者才能掛接遠端 BOOST 儲存裝置。如果在 /etc/fstab 下設定掛接,這可能不是問題,但當掛接是由非 root 使用者完成時,就會成為問題。
10.BOOSTFS 掛載正常,但嘗試在掛接點存取儲存單元內容失敗,並出現權限錯誤
使用 DataDomain「boostfs」命令或 /etc/fstab (甚至是 CLI 中的「mount.fuse」) 手動掛接儲存裝置時,預設的基礎 FUSE 實現是只允許掛接 BOOSTFS 的 Linux 用戶端使用者 ID 存取檔案。因此,如果掛接是以 root 身分進行,則只有 root 才能存取檔案。如果掛載是以使用者“postgres”(用於備份 PostgreSQL DB)進行的,則只有此使用者有權訪問檔。
如果出於不同的原因需要其他用戶能夠從Linux雲訪問掛載存儲單元中的檔,則可能需要調整/etc/fuse.conf。請參閱更多詳細資訊:
http://manpages.ubuntu.com/manpages/bionic/en/man8/mount.fuse.8.html
您需要在 /etc/fuse.conf 中設定下列選項:
user_allow_other
允許非 root 使用者指定 allow_other 或 allow_root 掛接選項 (請參閱
下面)。
然後在命令列掛接 BOOST 儲存裝置時使用下列命令:
allow_other
此選項將覆蓋限制使用者存取檔案的安全措施
掛接檔案系統。 因此,所有使用者(包括根使用者)都可以訪問這些檔。 這
此選項預設為僅允許根,但可透過以下方式移除此限制
上述組態選項 (user_allow_other)。
Additional Information
1.可以在 boostfs 配置檔中定義的最大掛載點部分數是多少?
boostfs.conf 檔案的掛載點區段中的掛接數量沒有限制。
# 掛載點部分由 [掛載點] 標籤分隔 # # [/路徑/至/掛載] # [/mnt/bofs] # Data Domain 主機名稱或 IP 位址 # data-domain-system=dd2500-1.yourdomain.com # 儲存單元 # 儲存裝置單位 = su-名稱 # 儲存單元使用者名稱 # 儲存裝置名稱 = 系統管理員 # 儲存單元內要掛載的子目錄 # directory-name=path/to/subdir
2.Neter預設支援BOOSTFS,並且可以處理執行某些任務和備份
的動態掛載即使 Networker 是支援 BOOST 的備份應用程式,它也在安裝它的 Linux 用戶端系統上支援 BOOSTFS。設定 BOOSTFS 加密箱後,從 Linux 用戶端命令列擷取的 NW 備份範例如下 (PostgreSQL 備份):
# nsroappbackup -z /nsr/apps/config/backup_postgresql.cfg 174908:(pid 16487):將備份資料儲存在集區「DB」中。 175019:(pid 16487):已收到主機「dd.example.com」的媒體管理繫結資訊。 174910:(pid 16487):已連接至主機「dd.example.com」上的 nsrmmd 程序。 + /usr/pgsql-11/bin/pg_dump --file=/nsr/apps/tmp/e3106c82_294324_16487/dump.sql --format=plain 繼續使用返回值 0 進行處理。 + /bin/cp /data/postgresql.conf /nsr/apps/tmp/e3106c82_294324_16487/ 繼續使用返回值 0 進行處理。 在時間「01/04/20 15:40:36」儲存集「PostgreSQL_postgres_backuppostgre_full」中的檔案為: 尺寸: 名稱: 2645 dump.sql 24000 postgresql.conf 2 檔 26645 位元組 備份命令「/nsr/apps/config/scripts/backup-postgre-dbon1-full.sh」已成功完成。 備份已成功完成
設定好備份工作後,也可以從 NW GUI 將其啟動,並在其中監控進度。當 NW 完成發出的掛接時,工程部門會顯示如下的記錄項目:
Apr 1 15:20:49 dd.example.com ddfs[17040]:注意:ddboost-client.example.com-49808<>:Boostfs:Apr 1 15:22:52.395 16275 704915520 [i] DDBoost 附掛程式版本為:[7.0.0.0.633508] Apr 1 15:20:49 dd.example.com ddfs[17040]:注意:ddboost-client.example.com-49808<>:Boostfs:Apr 1 15:22:52.395 16275 704915520 [I] BoostFS 版本資訊:[BOOSTFS:7.0.0.0-633922 保險絲:2.9.7] Apr 1 15:20:49 dd.example.com ddfs[17040]:注意:ddboost-client.example.com-49808<>:Boostfs:Apr 1 15:22:52.395 16275 704915520 [I] bfs_lib_init:將 dd.example.com:LSU_NAME 掛載至 /mnt/mountpoint