![資料內(nèi)容講義veritas官網(wǎng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa1.gif)
![資料內(nèi)容講義veritas官網(wǎng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa2.gif)
![資料內(nèi)容講義veritas官網(wǎng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa3.gif)
![資料內(nèi)容講義veritas官網(wǎng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa4.gif)
![資料內(nèi)容講義veritas官網(wǎng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa/5a82a7a5-5b9c-4744-9eea-17d4b87a3dfa5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Veritas File System 程序員參考指南上次更新時間2016-05-27文檔版本 7.1 Rev 1法律Copyright © 2016 Veritas Technologies LLC. 保留所利。Veritas、Veritas 徽標、和 NetBackup 是 Veritas Technologies LLC 或其附屬公司在和其他/地區(qū)的商標或商標。其他名稱可能為其各自所有者的商標,特此。本可能包含 Veritas 必需向第支付費的第(“第程序”)。部分第程序是以開或或方式獲得的。本隨附的證協(xié)議并未改變這些開隨附的或位于以下地址所規(guī)定的任何權利或義務。請參考此 Ve
2、ritas的第法律本文檔中的根據(jù)限制其使用、分發(fā)和反編譯/逆向工程的協(xié)議分發(fā)。Veritas Technologies LLC 及其特許人(如果)事先,不得以任何方式任何形式本文檔的。本文檔按“現(xiàn)狀”提供,對于所有明示或暗示的條款、陳述和保證,任何適銷性、特定用途的適用性或無侵害知識產(chǎn)權的暗示保證,均不提供任何擔保,除非此類免責的范圍在法律上視為無效。VERITAS TECHNOLOGIES LLC 不對任何與提供、執(zhí)行或使用本文檔相關的伴隨或后果性損害負責。本文檔所含更改,恕不另行通知。根據(jù) FAR 12.212 定義,的文檔被視為“商業(yè)計算機”,受 FAR Section52.227-19
3、 "Commercial Computer Software - Restricted Rights"(商業(yè)計算機受限權利)和 DFARS 227.7202 “Commercial Computer Software and Commercial Computer SoftwareDocumentation”(商業(yè)計算機商業(yè)計算機文檔)中的適用規(guī)定以及所有后續(xù)法規(guī)中規(guī)定的權利的制約,無論 Veritas 以本地服務還是托管服務提供都是如此。僅可根據(jù)本協(xié)議的條款對的文檔進行使用、修改、發(fā)布、執(zhí)行、顯示或披露。Veritas Technologies LLC 500 E Mid
4、dlefield Road Mountain View, CA 94043技術支持技術支持具有全球性支持中心。所有支持服務根據(jù)您的支持協(xié)議和當時有效的企業(yè)技術支持策略來提供。有關我們的支持服務以及如何技術支持的,請我們的從以下 URL 您可以管理 Veritas 帳戶如果您對現(xiàn)有支持協(xié)議有疑問,請通過以下方式您所在地區(qū)的支持協(xié)議管理部門CustomerCare全球(除外)CustomerCare_Japan文檔請確保您具有文檔的最新版本。每個文檔的第 2 頁顯示了上次更新日期。每個指南的第 2 頁提供了文檔版本??稍?Veritas上找到最新的文檔文檔反饋您的反饋對我們很重要。請對我們的文檔提
5、出改進意見、報告錯誤或遺漏。請在您的報告中所報告的文本內(nèi)容的文檔標題和文檔版本以及章節(jié)標題。請將反饋發(fā)送到doc.feedback您也可以在 Veritas 社區(qū)上查看文檔或提出問題Veritas Services and Operationsiness Tools (SORT)Veritas Services and Operationsiness Tools (SORT) 是一個,提供的和統(tǒng)計可自動處理和簡化某些耗時的管理任務。根據(jù)您的,SORT 會幫助您準備安裝和升級、識別您數(shù)據(jù)中心的風險并提高操作效率。要了解 SORT 為您的請參見數(shù)據(jù)表提供了哪些服務和工具,目錄第 1 章Verita
6、s File System開發(fā)工具包7工具包7開發(fā)工具包的功能7關于開發(fā)File SystemAPI 庫接口7文件更改日志8多卷支持8Veritas File System I/O9工具包包9開發(fā)所需的庫和頭文件9編譯環(huán)境10使用不同的編譯器重新編譯10第 2 章文件更改日志12關于文件更改日志文件12的更改12使用文件更改日志文件13文件更改日志的激活14文件更改日志文件布局15類型17特殊18典型序列18文件更改日志可調(diào)參數(shù)19可調(diào)參數(shù)如何處理文件更改日志增長的大小20文件更改日志的應用程序編程接口21易于使用21兼容性22API 函數(shù)22文件更改日志29文件更改日志35Veritas F
7、ile System 和文件更改日志的升級和降級39反向路徑名稱查找40Inode40vxfs_inotopath_gen40目錄5第 3 章多卷支持42關于多卷支持42多卷支持的用途43卷應用程序編程接口43管理卷集43文件系統(tǒng)的卷集44修改文件系統(tǒng)內(nèi)的卷44封裝和取消封裝卷45分配策略應用程序編程接口45指示文件分配45創(chuàng)建并指派策略47已定義的策略47強制執(zhí)行策略48數(shù)據(jù)結構48使用策略和應用程序編程接口49定義并指派分配策略49使用卷應用程序編程接口50第 4 章指定數(shù)據(jù)流52關于指定數(shù)據(jù)流52指定數(shù)據(jù)流的用途53指定數(shù)據(jù)流應用程序編程接口53列出指定數(shù)據(jù)流55指定數(shù)據(jù)流名空間55其他
8、系統(tǒng)調(diào)用中的行為更改56指定數(shù)據(jù)流56應用程序編程接口57命令參考資料58第 5 章Veritas File System I/O59關于 Veritas File System I/O59凍結和解凍59緩存顧問61直接 I/O62并行 I/O62無緩沖的 I/O63其他顧問63擴展區(qū)64擴展區(qū)屬性64保留: 為文件預分配空間65固定擴展區(qū)大小66目錄6擴展區(qū)屬性的應用程序編程接口66分配標志67用于固定擴展區(qū)大小的分配標志69如何使用擴展區(qū)屬性 API69設置固定擴展區(qū)大小69第 6 章精簡回收71關于精簡71關于精簡回收71精簡回收應用程序編程接口71vxfs_ts_reclaim 返回值
9、73索引741Veritas File System開發(fā)工具包本章節(jié)下列: 關于開發(fā)工具包 File System開發(fā)工具包的功能開發(fā)工具包包 所需的庫和頭文件 編譯環(huán)境關于開發(fā)工具包Veritas File System (VxFS)開發(fā)工具包 (SDK) 為開發(fā)提供了使用應用程序編程接口 (API) 修改和調(diào)整 Veritas File System 的各種功能和組件的必要信息。這些 API 隨 VxFS開發(fā)工具包一起提供。VxFS 4.0 版本及其后續(xù)版本中提供了本文檔所涉及的大多數(shù) API。File System開發(fā)工具包的功能的 VxFS 功能的概述。本節(jié)提供可使用 SDKAPI 庫
10、接口此 SDK 中提供的重要的 API 庫接口是 vxfsutil 庫和 VxFS IOCTL 命令。該庫包含 API 調(diào)用的集合,應用程序可以使用這些調(diào)用來利用 VxFS 文件系統(tǒng)的功能。所有 API 接口均提供有手冊頁。Veritas File System開發(fā)工具包8File System開發(fā)工具包的功能表 1-1 列出了 VxFS API 庫中提供的 API 調(diào)用和功能。表 1-1庫 API 和功能VxFS API 庫 vxfsutil,可于 Veritas File System安裝。此庫通過使用stubs 庫和動態(tài)庫組合來實現(xiàn)。使用 stubs 庫 libvxfsutil.a 編譯
11、應用程序,使應用程序可移植到任何 VxFS 目標環(huán)境。隨后應用程序就可以在 VxFS 目標上運行, stubs 庫將找到隨 VxFS 目標一起提供的動態(tài)庫。stubs 庫使用 vxfsutil.so 動態(tài)庫位置的默認路徑。大多數(shù)情況下,應使用默認路徑。但可以通過將環(huán)境變量 LIBVXFSUTIL_DLL_PATH 設置為 vxfsutil.so 庫的路徑來覆蓋默認路徑。此結構使得部署應用程序時出現(xiàn)的、與其他版本 VxFS 兼容的問題減至最低限度。文件更改日志VxFS 文件更改日志 (FCL) 跟蹤對文件系統(tǒng)中文件和目錄的更改。應用程序(如,備份、Web crawler、搜索和索引引擎以及副本)
12、可以使用文件更改日志,它們通常掃描整個文件系統(tǒng),搜索自上一次掃描以來的修改。請參見第 12 頁的“關于文件更改日志文件”。多卷支持多卷支持 (MVS) 功能VxFS 文件系統(tǒng)使用多個 Veritas Volume Manager(VxVM) 卷作為基礎。管理員和應用程序可以文件的位置,從而最大化有效性能,同時將開銷降至最低。此功能只能在 Veritas Volume Manager 中使用。此外,某些功能需要提供附加的請參見第 42 頁的“關于多卷支持”。鑰。API功能inotopathInode-to-pathnattr指定數(shù)據(jù)流FCL文件更改日志MVS多卷支持緩存顧問IOCTL 指令擴展區(qū)
13、IOCTL 指令凍結/解凍IOCTL 指令Veritas File System開發(fā)工具包9開發(fā)工具包包Veritas File System I/OVxFS 遵循系統(tǒng) V 接口定義 (SVID) 要求并支持用戶通過網(wǎng)絡文件系統(tǒng) (NFS) 進行。其他文件系統(tǒng)中不能提供所要求的性能功能的應用程序,可利用 VxFS 增強版。開發(fā)工具包包VRTSfssdk包由 SDK 組成。VRTSfssdk包包含庫、頭文件和示例程序的源代碼及二進制文件格式,說明了 VxFS API 接口在開發(fā)和編譯應用程序時的用法。包也包含本指南和 API 手冊頁。VRTSfssdk包的目錄結構如下:VRTSfssdksrc包
14、含若干子目錄,并每個感的 Makefile 文件。的提供有示例基于GNUbin包含指向源目錄中所有示例程序的符號鏈接,以便于輕松件。二進制文include包含 API 庫和 ioctl 接口的頭文件。lib包含預編譯的 vxfsutil API 接口 stubs 庫。libsrc包含 vxfsutil API 接口 stubs 庫的源代碼??梢詥为殢?VxFS包獲取 VRTSfssdk包。要運行應用程序或示例程序,具有的 VxFS 目標必不可少。此外, 證。目標系統(tǒng)上安裝所需功能的 VxFS所需的庫和頭文件VRTSfssdk包 安裝在 /opt 目錄中。關聯(lián)的庫和頭文件安裝在以下位置: 在 S
15、olaris 10 上: /opt/VRTSfssdk/6.2.0.000/lib/libvxfsutil.a /opt/VRTSfssdk/6.2.0.000/include/vxfsutil.h /opt/VRTSfssdk/6.2.0.000/include/fcl.h /opt/VRTSfssdk/6.2.0.000/include/sys/fs/vx_ioctl.h 在 Solaris 11 上: /opt/VRTSfssdk/lib/libvxfsutil.a /opt/VRTSfssdk/include/vxfsutil.hVeritas File System開發(fā)工具包編譯環(huán)境
16、10 /opt/VRTSfssdk/include/fcl.h /opt/VRTSfssdk/include/sys/fs/vx_ioctl.h還提供有從標準 Veritas 路徑指向這些文件的符號鏈接: /opt/VRTS/lib 和/opt/VRTS/include。在最新版本的 VxFS 和 VxFS SDK 中,標準路徑是默認路徑。編譯環(huán)境SDK包將示例程序與編譯后的二進制文件一同安裝。運行示例程序的要求如下: 裝有 VRTSvxfs 適用版本的目標系統(tǒng) Root 權限,這對某些程序而言是必不可少的 已裝入的 VxFS 6.0 或更高版本的文件系統(tǒng)。某些程序可能要求在 Veritas
17、Volume Set 上裝入文件系統(tǒng)。注意:某些程序可能要求特殊的卷配置(卷集)。此外,某些程序要求在卷集上裝入文件系統(tǒng)。使用不同的編譯器重新編譯重新編譯 src 或 libsrc 目錄所需的工具如下: gmake 或 make 命令 gmake 命令 gcc 編譯器或 cc 命令 gcc 編譯器Veritas File System開發(fā)工具包編譯環(huán)境11重新編譯 src 和 libsrc 目錄12編輯 make.env 文件并用指向您編譯器的路徑對其進行修改。轉至 src 或 libsrc 目錄并運行 gmake 或 make 命令:# gmake3在寫入應用程序后,請對其進行如下編譯:在
18、Solaris 10 上:# gcc -I /opt/VRTSfssdk/6.2.0.000/include -L /opt/VRTSfssdk/6.2.0.000/lib -ldl -o MyApp MyApp.c libvxfsutil.a在 Solaris 11 上:# gcc -I /opt/VRTSfssdk/include -L /opt/VRTSfssdk/lib -ldl -o MyApp MyApp.c libvxfsutil.a要編譯 src 或 libsrc 目錄,請按以下操作編輯 make.env 文件:1在本地系統(tǒng)上選擇編譯器路徑。將 CC 變量設置為系統(tǒng)上的此路徑:
19、CC=/opt/SUNWspro/SUNWspro/bin#CC=/usr/local/bin/gcc使用適合您的編譯器的路徑。轉至 src 或 libsrc 目錄,然后鍵入:2# gmake或# make2文件更改日志本章節(jié)下列: 關于文件更改日志文件類型 文件更改日志可調(diào)參數(shù) 文件更改日志的應用程序編程接口 反向路徑名稱查找關于文件更改日志文件VxFS 文件更改日志 (FCL) 跟蹤對文件系統(tǒng)中文件和目錄的更改。以使用 FCL 為代表的應用程序通常需要執(zhí)行以下任務: 掃描整個文件系統(tǒng)或子集 發(fā)現(xiàn)自上次掃描以來的更改這些應用程序可能: 備份實用程序、webcrawler、搜索引擎和副本程序。
20、注意:FCL 跟蹤數(shù)據(jù)更改的時間并更改類型,但不跟蹤實際的數(shù)據(jù)更改。由應用程序負責檢查文件以確定更改過的數(shù)據(jù)。的更改文件更改日志 為 鏈接下列文件系統(tǒng)更改:文件更改日志關于文件更改日志文件13 取消鏈接 重命名 數(shù)據(jù)附加 數(shù)據(jù)重寫 數(shù)據(jù)裁截 擴展屬性的修改 打孔 其他文件屬性更新注意:僅磁盤布局版本 6 及更高版本支持 FCL。在文件系統(tǒng)命名空間中,F(xiàn)CL 在稀疏文件中更改,也稱為 FCL 文件。FCL 文件總是位于 /mount_point/lost+found/changelog。FCL 文件行為類似于普通文調(diào)用 open(2)、lseek(2)、件,但一些用戶級操作(例如寫)會被。(2)
21、 和(2) 可FCL 文件中的數(shù)據(jù)。所有其他系統(tǒng)調(diào)用,如 mmap(2)、unlink(2) 和 ioctl(2) 在 FCL 文件上則不被。警告:為與將來的 VxFS 版本兼容,F(xiàn)CL 文件可能被取出命名空間,這些調(diào)用可能不再有效。因此,Veritas 建議使用編程接口來開發(fā)所有新的應用程序。請參見第 21 頁的“文件更改日志的應用程序編程接口”。使用文件更改日志文件VxFS 通過向 FCL 文件附加與文件系統(tǒng)更改相關的更改。這樣,您就可以執(zhí)行以下操作:,來跟蹤對文件系統(tǒng)所做的 使用 FCL 確定通常在文件系統(tǒng)上進行的或在一個特定即時點之后在特定文件上進行的操作序列。例如,增量備份應用程序可
22、掃描 FCL 文件,確定自文件系統(tǒng)上一次備份后哪些文件被添加或修改。 配置 FCL 跟蹤其他(例如,文件打開、I/O 統(tǒng)計數(shù)據(jù))和用戶 ID)。(例如,然后,可使用此收集下列數(shù)據(jù): 空間使用量統(tǒng)計數(shù)據(jù),用于確定不同類型數(shù)據(jù)的空間使用方式。文件更改日志關于文件更改日志文件14不同用戶在文件系統(tǒng)中使用不同文件的用法配置文件,可幫助確定最近過的數(shù)據(jù)及者??臻g使用量當文件系統(tǒng)接近,可使用 FCL 文件跟蹤空間使用量。 可搜索 FCL 文件查找最近創(chuàng)建的文件(文件創(chuàng)建)或寫入確定新增的文件或最近增大的現(xiàn)有文件。根據(jù)應用程序需要,可對整個 FCL 文件進行搜索,或者對與特定時間范圍對應的部分 FCL 文件
23、進行搜索。此外,您可以查找用特定名稱創(chuàng)建的文件。例如,如果用戶正在 占用過多空間的 *.mp3 文件,可 FCL 文件查找用名稱 *.mp3 創(chuàng)建的文件。減少全面系統(tǒng)掃描VxFS 為在啟用 FCL 的文件系統(tǒng)上執(zhí)行的每個更新操作創(chuàng)建并記入 FCL。這些操作創(chuàng)建、刪除、重命名、模式更改和寫入。因此,增量備份應用程序或根據(jù)文件名、文件屬性或者內(nèi)容維護文件系統(tǒng)索引的應用程序,可以通過FCL 文件,檢測自從上一次備份或上一次索引更新以來發(fā)生更改的文件,來避免全面系統(tǒng)掃描。文件歷史跟蹤您可以通過掃描 FCL 文件和整合文件的 FCL可以使用與文件的創(chuàng)建、屬性更改、寫入序列來跟蹤文件的歷史。還和刪除相關的
24、 FCL,以跟蹤文件的歷史。文件更改日志的激活默認情況下,停用 FCL 日志,但可以使用 fcladm 命令每個文件系統(tǒng)激活日志。請參見 fcladm(1M) 手冊頁。激活 FCL 日志件。關閉 FCL 日志后,新的 FCL將在文件系統(tǒng)發(fā)生更改時被附加到 FCL 文后,將進一步停止,但是 FCL 文件仍然為/lost+found/changelog。使用 fcladm 命令,您只能刪除 FCL 文件。FCL 文件中包含一個表示布局或是 FCL 文件的內(nèi)部表示形式的關聯(lián)版本,以及在FCL 文件中的列表。每當發(fā)布 VxFS 的新版本時,將會出現(xiàn)下列情況: 在 FCL 文件中可能有的其他 FCL 文
25、件的內(nèi)部表示形式可能會發(fā)生更改文件更改日志關于文件更改日志文件15通過這種方式 FCL 文件版本獲得更新。例如,在 VxFS 4.1 中,默認為版本 3。但是,由于 VxFS 5.0 及更高版本會版本 3 中不可用的其他集(例如,文件打開),因此,VxFS 5.0 及更高版本中的默認版本是版本 4。為了向 VxFS 4.1 上開發(fā)的應用程序提供兼容性,VxFS 5.0 及更高版本提供了一個用于在激活過程中指定 FCL 版本的選項。根據(jù)指定的版本,可以。對于大多數(shù)在 VxFS 5.0 及更高版本中新添加的或新類型的日志的日志(例如,文件打開和 I/O 統(tǒng)計數(shù)據(jù))都是可選的,默認情況下處于關閉狀態(tài)
26、??梢允褂?fcladm 命令的 set 和 clear 選項來啟用或禁用這些包含文件系統(tǒng)狀態(tài)、版本以及被跟蹤的。集的 FCL 元數(shù)據(jù),在重新啟動前后,以及文件系統(tǒng)卸載或裝入時都是持久性的。版本和錄前后也是持久性的。在重新激活 FCL 日志記文件更改日志文件布局在 VxFS 4.1 中,F(xiàn)CL 文件的內(nèi)部布局對用戶是透明的,并且應用程序可使用標準文件系統(tǒng)接口(例如,open(2)、(2) 和 lseek(2))來FCL 文件。不過,此 可能會導致將來的兼容性問題,這是因為如果基本的 FCL 布局和 FCL 版本發(fā)生了更改,則必須更改和重新編譯應用程序,以適應這些更改。VxFS 5.0 引入了一
27、個新的編程接口,即使磁盤上的 FCL 布局發(fā)生更改,該接口也會提供改進的兼容性。有了該 API,對于應用程序來講,F(xiàn)CL 布局變得不再那么重要。因此,本節(jié)僅提供了對 FCL 布局的簡要說明。FCL 文件通常是一個包含 FCL 超級塊和 FCL的稀疏文件。FCL 文件中的第一個塊是 FCL 超級塊。此塊可以后接一個可選孔,以及包含有關文件系統(tǒng)中更改的 FCL。圖 2-1 描述了 FCL 文件格式。圖 2-1偏移 0x0FCL 文件格式第一次偏移文件系統(tǒng)塊界限文件系統(tǒng)塊界限最后一次偏移超級塊文件更改日志關于文件更改日志文件16文件更改日志超級塊對文件系統(tǒng)中文件和目錄的更改將為 FCL件中的第一個塊
28、)描述了 FCL 文件的狀態(tài)。超級塊指明下列操作: 是否啟用 FCL 日志 它是何時激活的 第一條和最后一條 FCL的當前偏移 FCL 文件版本。超級塊(當前在 FCL 文 當前被跟蹤的集的掩碼 上次更改掩碼的時間使用 fcladm on 命令首次激活 FCL 時,將創(chuàng)建僅包含超級塊的 FCL 文件。使用fcladm rm 命令刪除 FCL 文件時,僅刪除超級塊。使用 fcladm on 激活 FCL 時,超級塊中的狀態(tài)及其激活時間將發(fā)生更改。只要任何文件系統(tǒng)活動導致被附加到 FCL 文件,最后一個偏移就會獲得更新。當 FCL 文件增大時,根據(jù)文件系統(tǒng)可調(diào)參數(shù) fcl_maxalloc 和 f
29、cl_keeptime,在FCL 文件開頭的最舊將在第一個偏移獲得更新時被丟掉,以一些空間。使用 fcladm 命令的 set 或 clear 選項更改在 FCL 文件中被跟蹤的集掩碼更改件掩碼和掩碼更改時間也將隨之更新。掩碼更改還會導致在 FCL 文件中。(包含舊掩碼更改和新掩碼更改)被文件更改日志FCL包含有關這些典型更改的:更改后的文件的 inode 編號請參見第 40 頁的“Inode”。更改的時間更改的類型基于根據(jù)類型的可選類型, FCL還可能下列: 父級 inode 編號 文件刪除、鏈接和相似的操作的文件名 文件打開 I/O 統(tǒng)計數(shù)據(jù)令名的實際統(tǒng)計數(shù)據(jù)請參見第 15 頁的圖 2-1
30、。文件更改日志類型17類型表 2-1 列出了生成 FCL類型的操作。表 2-1FCL類型創(chuàng)建 FCL的操作類型添加指向現(xiàn)有的文件或目錄的鏈接VX_FCL_LINK附加寫入到文件VX_FCL_DATA_EXTNDWRITE創(chuàng)建文件或目錄VX_FCL_CREATE創(chuàng)建指定數(shù)據(jù)流目錄VX_FCL_CREATE創(chuàng)建符號鏈接VX_FCL_SYMLINK在共享和可寫入模式下對文件執(zhí)行mmap 操作VX_FCL_DATA_OVERWRITE從檢查點提升文件VX_FCL_UNDELETE在文件中打孔VX_FCL_HOLE_PUNCHED刪除文件或目錄VX_FCL_UNLINK刪除指定數(shù)據(jù)流目錄VX_FCL_U
31、NLINK重命名文件或目錄VX_FCL_RENAME將文件重命名為現(xiàn)有的文件名VX_FCL_UNLINKVX_FCL_RENAME設置文件屬性(分配策略、ACL 和擴展屬性)VX_FCL_EATTR_CHG設置文件擴展區(qū)保留VX_FCL_INORES_CHG設置文件擴展區(qū)大小VX_FCL_INOEX_CHG設置文件組所VX_FCL_IGRP_CHG設置文件模式VX_FCL_IMODE_CHG設置文件大小VX_FCL_DATA_TRUNCATE設置文件用戶所VX_FCL_IOWN_CHG設置文件的 mtimeVX_FCL_MTIME_CHG裁截文件VX_FCL_DATA_TRUNCATE文件更改
32、日志類型18更改在 FCL 中跟蹤的集VX_FCL_EVNTMSK_CHG注意:表 2-1 列出了當 fcladm on 命令激活 FCL 日志時,默認件(除 fileopen 和 filestat 之外)。的所有事默認情況下,也set 選項可以這些中每個的。使用 fcladm 命令的打開、I/O 統(tǒng)計數(shù)據(jù)和。請參見 fcladm(1M) 手冊頁。這些類型屬于fcl_chgtype.t. fcl_chgtype.t,它是在fcl.h 頭文件中定義的枚舉。請參見第 33 頁的表 2-2。特殊下列類型通過 API 不再是可見的: VX_FCL_HEADER VX_FCL_NOCHANGE VX_F
33、CL_ACCESSINFO典型序列在文件系統(tǒng)中,文件從創(chuàng)建到刪除的生命周期在 FCL 文件中。創(chuàng)建文件時,下列是寫入日志的 FCL的典型序列:VX_FCL_CREATEVX_FCL_FILEOPEN (if tracking file opens is enabled) VX_FCL_DATA_EXTNDWRITEVX_FCL_IMODE_CHG寫入文件時,會將下列其中一項 FCL寫入到每次寫操作的日志中。該取決于是在當前文件末尾寫入還是在文件內(nèi)寫入。VX_FCL_DATA_EXTNDWRITEVX_FCL_DATA_OVERWRITE創(chuàng)建 FCL的操作類型寫入到文件的現(xiàn)有的塊VX_FCL_D
34、ATA_OVERWRITE打開文件VX_FCL_FILEOPEN將文件的 I/O 統(tǒng)計數(shù)據(jù)寫入到 FCLVX_FCL_FILESTATS文件更改日志文件更改日志可調(diào)參數(shù)19以下顯示了當文件 a 重命名為 b 并且這兩個文件均位于文件系統(tǒng)中時,寫入日志的FCL的典型序列:VX FCL_UNLINK(適用于文件 b,如果它已經(jīng))VX_FCL_RENAME(適用于將文件 a 重命名為 b)文件更改日志可調(diào)參數(shù)您可以使用 vxtunefs 命令設置四個 FCL 可調(diào)參數(shù)。請參見 vxtunefs(1M) 手冊頁。下列是四個可用 FCL 可調(diào)參數(shù):指定 FCL在它們可以被清除之前在 FCL 文件保留的持
35、續(xù)時間(以fcl_keeptime秒為)。最舊的將第一批被清除,這些位于文件的開頭。此外,如果對FCL 文件的分配超過fcl_maxalloc 字節(jié)數(shù),則將清除文件開頭的。默認值為 0。請注意,fcl_keeptime 的優(yōu)先級高于 fcl_maxalloc。如果 FCL 文件超過 fcl_maxalloc 字節(jié)數(shù),但最舊的的生命周期尚未到達 fcl_keeptime 秒,則打孔。調(diào)整建議只有當管理員希望確保在 FCL 中的保留時間達到需要調(diào)整 fcl_keeptime 可調(diào)參數(shù)。fcl_keeptimefcl_keeptime 參數(shù)設置為大于 FCL 掃描時間間隔的任意值。例如, 如果 FC
36、L 每 24 個小時掃描一次,則可以將 fcl_keeptime 設置為 25個小時。這樣可以防止在和處理 FCL之前將其清除。指定要分配給 FCL 文件的最大空間量(以字節(jié)為)。當分配的空fcl_maxalloc間超過 fcl_maxalloc 時,將在文件的開頭打孔。結果,將清除并更新 FCL 超級塊中的第一個有效偏移。fcl_maxalloc 的最小值是4MB。默認值是 fs_size/33。fcl_winterval指定 FCL 為同一 inode多次重寫、擴展寫入或裁截之前所經(jīng)歷的時間(以秒為)。這樣可以減少 FCL 中重復的數(shù)。fcl_winterval 超時基于每個 inode。
37、如果 inode 出現(xiàn)緩存不足并返回,則其寫入時間間隔將重置。這樣,在同一寫入時間間隔內(nèi),該文件會有多條寫入 。默認值為 3600 秒。調(diào)整建議 應該將 fcl_winterval 可調(diào)參數(shù)設置為小于 FCL 掃描時間間隔的值。例如,如果 FCL 每 24 個小時掃描一次,則可以將fcl_winterval 設置為少于 24 個小時。這樣可以確保在兩次掃描期間對于將要被重寫、擴展或裁截的每個文件,在 FCL 中至少有一條記錄。文件更改日志文件更改日志可調(diào)參數(shù)20指定后續(xù)打開文件的操作不生成其他 FCLfcl_ointerval的時間間隔(以秒為單位)。這有助于減少在 FCL 中的重復性文件打開
38、數(shù),特別是的跟蹤,在經(jīng)常通過 NFS 進行的情況下。如果還啟用了則在 fcl_ointerval 內(nèi)的后續(xù)文件打開可能會生成一條(如果后面的打開是由另一個用戶執(zhí)行的)。與 fcl_ointerval 類似,如果 inode 緩存不足并返回,或FCL 同步,則在同一打開時間間隔內(nèi)可能會有多個文件打開。默認值為 600 秒。調(diào)整建議如果使用文件打開的應用程序只需要知道,自從它上次掃描 FCL 以來是否有任何用戶了文件,則可以將fcl_ointerval 設置為兩次掃描之間的時間范圍內(nèi)的一個時間段。如果應用程序關注對每次進行跟蹤,則可以將可調(diào)參數(shù)設置為零。在通過 NFS 大量文件系統(tǒng)的情況下,根據(jù)具
39、體的平臺和 NFS 實施,將可能大量的文件打開。在此情況下,建議將可調(diào)參數(shù)設置為更高的值,以避免 FCL 中大量的重復性。可調(diào)參數(shù)如何處理文件更改日志增長的大小圖 2-2 顯示了當 FCL 文件增大時清除的示例。左邊的 FCL 文件包含 8K 的塊且沒有打孔。當文件系統(tǒng)發(fā)生活動時,便將活動在 FCL 中,這導致右邊的 FCL 文件增大。當FCL 文件大小到達fcl_maxalloc 可調(diào)參數(shù)指定的所的最大大小時,將會清除更舊的并空間。 FCL 功能只清除其時間早于fcl_keeptime 指定的時間的那些。 被的空間始終以一個內(nèi)部孔大小為。圖 2-2 顯示了在 FCL 文件中以 8K 為當 F
40、CL 文件首次超過最大分配時,舊的空間的文件系統(tǒng)。數(shù)是 20K,程序將清除 16K 的。這樣會在 FCL 超級塊后面留下一個 16K 的孔。FCL 超級塊中的第一個有效偏移將更新為 24K。文件更改日志文件更改日志的應用程序編程接口21圖 2-2偏移 0x0FCL清除示例偏移 0x0第一次偏移 = 8K16K 孔洞偏移 = 24KBFCL 后:在偏移 8K 處16K 孔洞FCL 前:沒有孔洞文件更改日志的應用程序編程接口除通過 libvxfsutil:vxfs_fcl_sync 提供的現(xiàn)有編程接口之外,VxFS 5.0 及更高版本還提供了一組新的編程接口,可替換通過調(diào)用集FCL 文件的機制:o
41、pen(2)、lseek(2)、了以下改進:(2) 和(2)FCL 文件的機制。此 API 提供易于使用API 減少了寫入其他代碼以FCL 條目的需求。大多數(shù)磁盤上的 FCL的大小都是固定的,并且僅包含默認的,例如,inode編號或時間戳。但是,有些的大小是可變的,例如,文件刪除或重命名記錄。這些包含其他,例如,被刪除或重命名的文件的名稱。若要確保任何文件系統(tǒng)塊開頭的少數(shù)字節(jié)始終是有效的 FCL(如果文件名塊邊界),可以跨磁盤上的多條對文件系統(tǒng)塊進行拆分。以前,您需要寫入其他代碼來組合這些以獲得文件名?,F(xiàn)在,VxFS 5.0 及更高版本中的 API 提供了一種機制,可以直接單個組合邏輯。這使得
42、應用程序對 API 的應用更容易。通過 API,應用程序還可以指定一個篩選器,以指示所關注的子集并僅返回所需。超級塊超級塊文件更改日志文件更改日志的應用程序編程接口22兼容性通過 API,應用程序可不受FCL 布局更改影響的FCL。例如,考慮這樣一個方案,應用程序可直接并解釋磁盤上的FCL。如果下一個 VxFS版添加或更改了在 FCL 文件中的了新方式,則應用程序需要重新編寫或至少重新編譯,以適應這種更改(在先前的 VxFS 版本中)。通過中間 API,磁盤上的 FCL 布局對于應用程序是隱藏的,因此,即使 FCL 的磁盤布局發(fā)生了更改,API 也會在內(nèi)部轉換數(shù)據(jù),并向用戶返回期望的輸出。用戶
43、應用程序仍可以繼續(xù)運行而無需重新編譯或重新編寫。這了 FCL 布局更改對程序的影響,并為現(xiàn)有的應用程序提供更兼容性。API 函數(shù)API 使用下列類型的函數(shù):FCL的函數(shù) 尋找偏移和時間戳的函數(shù)文件更改日志的函數(shù)以下是FCL的常見函數(shù):vxfs_fcl_open打開 FCL 文件并返回進一步操作可以使用的句柄。所有通過 API對 FCL 文件進行的后續(xù)都必須使用該句柄。vxfs_fcl_關閉 FCL 文件并清除與該句柄關聯(lián)的資源vxfs_fcl_getinfo返回 FCL 版本號以及 FCL 文件的狀態(tài)(打開/關閉)vxfs_fcl_將用戶感的 FCL到用戶使用的緩沖區(qū)vxfs_fcl_copy
44、recFCL。如果源新的位置。包含指針,則會重定位這些指針以指向尋找文件更改日志中的偏移和時間戳的函數(shù)用戶可選擇根據(jù)他們停止使用的偏移尋找文件更改日志中的特定點,或尋找指定時間后的第一條。下列函數(shù)可以尋找 FCL 中的偏移和時間戳:vxfs_fcl_getcookie返回一個內(nèi)含當前 FCL 激活時間和當前偏移的不透明的結構(以下稱為 cookie)。可以保存該 cookie,并稍后將其傳遞到vxfs_fcl_seek 中,以便從上次應用程序停止的位置繼續(xù)。文件更改日志文件更改日志的應用程序編程接口23vxfs_fcl_seek從傳遞的 cookie 中提取數(shù)據(jù)并尋找指定的偏移。cookie
45、中將內(nèi)含F(xiàn)CL 激活時間和文件偏移。vxfs_fcl_seektime尋找指定時間后 FCL 中的第一條。vxfs_fcl_open下列是 vxfs_fcl_open() 函數(shù)的語法:int vxfs_fcl_open(char *pathname, int flags, void *handle);此函數(shù)可打開 FCL 文件,并且返回通過 API(例如,vxfs_fcl_、vxfs_fcl_seek 等)對 FCL 進一步需要使用的句柄。vxfs_fcl_open 有兩個參數(shù): *pathname 和 *handle。*pathname 可以是一個指向 FCL 文件名或裝入點的指針。如果 *
46、pathname 是一個裝入點,vxfs_fcl_open 將會自動確定是否激活裝入點上的 FCL 并打開與裝入點(當前為mount_point/lost+found/changelog)關聯(lián)的 FCL 文件。vxfs_fcl_open 然后確定它是否為有效 FCL 文件,以及 FCL 文件版本是否與庫兼容。然后,vxfs_fcl_open() 函數(shù)將關于FCL 文件的元數(shù)據(jù)的內(nèi)部數(shù)據(jù)結構,并用指針填充 *handle。提取到一個不透明就像 lseek(2) 和(2) 系統(tǒng)調(diào)用一樣,F(xiàn)CL 文件 *handle 中有一個內(nèi)部偏移,用于指示文件中下次開始的位置。打開 FCL 文件后,將此偏移設置
47、為 FCL文件中的第一個有效偏移。返回值完成后,將向調(diào)用方返回 0 并且句柄非空。否則,API 返回一個非零值,并且句柄設置為 NULL。此外還將設置全局值錯誤號以指明錯誤。vxfs_fcl_vxfs_fcl_關閉句柄的 FCL 文件。所有與該句柄一起分配的數(shù)據(jù)結構將被清除。調(diào)用 vxfs_fcl_之后不應再使用該句柄。參數(shù)void vxfs_fcl_(void *handle)*handle 是先前調(diào)用 vxfs_fcl_open 時返回的有效句柄。vxfs_fcl_getinfoint vxfs_fcl_getinfo(void *handle, struct fcl_info*fclin
48、fo);文件更改日志文件更改日志的應用程序編程接口24vxfs_fcl_getinfo() 函數(shù)返回由 fcl_info 指向的 FCL結構中有關 FCL 文件的。它從 FCL 超級塊獲得此。struct fcl_info uint32_tfcl_version; uint32_tfcl_state;能夠識別與每條關聯(lián)的類型的智能應用程序,可以通過 fcl_version 確定FCL 文件是否包含所需。 例如,版本 3 FCL 文件從不包含以及 FCL。 如果fcl_state 為FCLS_OFF ,則應用程序可以推斷出,由于文件系統(tǒng)活動而沒有任何被添加到 FCL 文件。返回值0 表示;否則,
49、將為錯誤設置錯誤號,并返回一個非零值。vxfs_fcl_通過此函數(shù),應用程序可以實際文件或作為邏輯在 FCL 中的目錄更改。每個都返回一個 struct fcl_record 類型。通過 vxfs_fcl_,應用程序可以指定一個包含一組期望的篩選器。參數(shù)下列是 vxfs_fcl_() 函數(shù)的語法:int vxfs_fcl_(void *hndl, char *buf, size_t *bufsz,uint64_t eventmask, uint32_t *nentries);輸入此函數(shù)包含下列輸入: *hndl 是先前調(diào)用 vxfs_fcl_open 時返回的指針 *buf 是指向緩沖區(qū)大小的
50、指針,緩沖區(qū)大小至少為 *bufsz *bufsz 用于指定緩沖區(qū)的大小 eventmask 是位掩碼,用于指定應用程序感的集。它應該是在 fcl.h頭文件中指定的掩碼集的“邏輯或”。例如,如果 eventmask 為(VX_FCL_CREATE_MASK | VX_FCL_UNLINK_MASK),vxfs_fcl_僅返回文件創(chuàng)建和刪除。如果應用程序需要所有類型,該應用程序可以將默認 eventmask 掩碼指定為 FCL_ALL_V4_EVENTS。這將返回 FCL 文件中的所有有效版本 4 FCL 記錄。請參見第 17 頁的表 2-1。文件更改日志文件更改日志的應用程序編程接口25注意:
51、如果在 eventmask 中設置了 VX_FCL_EVENTMASKCHG_MASK,并且vxfs_fcl_返回的是緩沖區(qū)中的最后一條包含一條 VX_FCL_EVENTMASK_CHG,則它始終。這樣,應用程序可以根據(jù)需要重新調(diào)整eventmask。此外,如果應用程序從 eventmask 更改中發(fā)現(xiàn)某個特定不再被,則它可以決定停止進一步。 *nentries 用于指定在調(diào)用 vxfs_fcl_過程中應讀入緩沖區(qū)的條目數(shù)。如緩沖區(qū)能夠容納的最大條目數(shù)。果 *nentries 為 0,vxfs_fcl_將輸出如果沒有錯誤,*buf 包含 struct fcl_record 類型的 *nentr
52、ies FCL。如果請求的條目數(shù)量與傳遞大小的緩沖區(qū)不匹配,則將返回 FCL_ENOSPC 錯誤。在這種情況下,將更新 *bufsz 以便使包含的緩沖區(qū)大小能夠容納請求數(shù)量的應用程序可以使用此方式來重新分配一個更大緩沖區(qū),然后重新調(diào)用。vxfs_fcl_。如果沒有錯誤,*bufsz 將發(fā)生更改。如果調(diào)用vxfs_fcl_時沒有錯誤,*nentries 將會更新以包含讀入緩沖區(qū)的條目數(shù)。如果應用程序已到達文件的末尾并且沒有要的值將均為零。的,則 *nentries 和返回返回值0 表示;非零表示出現(xiàn)錯誤。注意:如果緩沖區(qū)中沒有足夠的空間來返回的是緩沖區(qū)的最小大小。當前,將返回 FCL_ENOSPC。*bufsz調(diào)用 vxfs_fcl_后,當前的文件位置將會向前移動,以便下次調(diào)用vxfs_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球離網(wǎng)房車行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球高脈沖能量皮秒激光器行業(yè)調(diào)研及趨勢分析報告
- 月齡嬰兒情緒情感與社會性親子活動設計創(chuàng)造性撫觸游戲講解
- 2025【合同范本】建筑工程設計協(xié)議書
- 蔬菜配送合作合同范本
- 分期付款合同模板集錦
- 會簽單合同模板
- 全新對講機服務合同下載
- 勞務出資合伙協(xié)議合同
- 個人租車租賃合同范本
- 區(qū)域經(jīng)理年終工作總結匯報
- 2019版新人教版高中英語必修+選擇性必修共7冊詞匯表匯總(帶音標)
- 初中八年級音樂-勞動號子《軍民大生產(chǎn)》
- 中層領導的高績效管理
- 小小銀行家-兒童銀行知識、理財知識培訓
- 機械基礎知識競賽題庫附答案(100題)
- 閱讀理解特訓卷-英語四年級上冊譯林版三起含答案
- 國庫集中支付培訓班資料-國庫集中支付制度及業(yè)務操作教學課件
- 屋面及防水工程施工(第二版)PPT完整全套教學課件
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023年高一物理期末考試卷(人教版)
評論
0/150
提交評論