![資料內(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)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Veritas File System 程序員參考指南上次更新時間2016-05-27文檔版本 7.1 Rev 1法律Copyright © 2016 Veritas Technologies LLC. 保留所利。Veritas、Veritas 徽標(biāo)、和 NetBackup 是 Veritas Technologies LLC 或其附屬公司在和其他/地區(qū)的商標(biāo)或商標(biāo)。其他名稱可能為其各自所有者的商標(biāo),特此。本可能包含 Veritas 必需向第支付費的第(“第程序”)。部分第程序是以開或或方式獲得的。本隨附的證協(xié)議并未改變這些開隨附的或位于以下地址所規(guī)定的任何權(quán)利或義務(wù)。請參考此 Ve
2、ritas的第法律本文檔中的根據(jù)限制其使用、分發(fā)和反編譯/逆向工程的協(xié)議分發(fā)。Veritas Technologies LLC 及其特許人(如果)事先,不得以任何方式任何形式本文檔的。本文檔按“現(xiàn)狀”提供,對于所有明示或暗示的條款、陳述和保證,任何適銷性、特定用途的適用性或無侵害知識產(chǎn)權(quán)的暗示保證,均不提供任何擔(dān)保,除非此類免責(zé)的范圍在法律上視為無效。VERITAS TECHNOLOGIES LLC 不對任何與提供、執(zhí)行或使用本文檔相關(guān)的伴隨或后果性損害負責(zé)。本文檔所含更改,恕不另行通知。根據(jù) FAR 12.212 定義,的文檔被視為“商業(yè)計算機”,受 FAR Section52.227-19
3、 "Commercial Computer Software - Restricted Rights"(商業(yè)計算機受限權(quán)利)和 DFARS 227.7202 “Commercial Computer Software and Commercial Computer SoftwareDocumentation”(商業(yè)計算機商業(yè)計算機文檔)中的適用規(guī)定以及所有后續(xù)法規(guī)中規(guī)定的權(quán)利的制約,無論 Veritas 以本地服務(wù)還是托管服務(wù)提供都是如此。僅可根據(jù)本協(xié)議的條款對的文檔進行使用、修改、發(fā)布、執(zhí)行、顯示或披露。Veritas Technologies LLC 500 E Mid
4、dlefield Road Mountain View, CA 94043技術(shù)支持技術(shù)支持具有全球性支持中心。所有支持服務(wù)根據(jù)您的支持協(xié)議和當(dāng)時有效的企業(yè)技術(shù)支持策略來提供。有關(guān)我們的支持服務(wù)以及如何技術(shù)支持的,請我們的從以下 URL 您可以管理 Veritas 帳戶如果您對現(xiàn)有支持協(xié)議有疑問,請通過以下方式您所在地區(qū)的支持協(xié)議管理部門CustomerCare全球(除外)CustomerCare_Japan文檔請確保您具有文檔的最新版本。每個文檔的第 2 頁顯示了上次更新日期。每個指南的第 2 頁提供了文檔版本??稍?Veritas上找到最新的文檔文檔反饋您的反饋對我們很重要。請對我們的文檔提
5、出改進意見、報告錯誤或遺漏。請在您的報告中所報告的文本內(nèi)容的文檔標(biāo)題和文檔版本以及章節(jié)標(biāo)題。請將反饋發(fā)送到doc.feedback您也可以在 Veritas 社區(qū)上查看文檔或提出問題Veritas Services and Operationsiness Tools (SORT)Veritas Services and Operationsiness Tools (SORT) 是一個,提供的和統(tǒng)計可自動處理和簡化某些耗時的管理任務(wù)。根據(jù)您的,SORT 會幫助您準(zhǔn)備安裝和升級、識別您數(shù)據(jù)中心的風(fēng)險并提高操作效率。要了解 SORT 為您的請參見數(shù)據(jù)表提供了哪些服務(wù)和工具,目錄第 1 章Verita
6、s File System開發(fā)工具包7工具包7開發(fā)工具包的功能7關(guān)于開發(fā)File SystemAPI 庫接口7文件更改日志8多卷支持8Veritas File System I/O9工具包包9開發(fā)所需的庫和頭文件9編譯環(huán)境10使用不同的編譯器重新編譯10第 2 章文件更改日志12關(guān)于文件更改日志文件12的更改12使用文件更改日志文件13文件更改日志的激活14文件更改日志文件布局15類型17特殊18典型序列18文件更改日志可調(diào)參數(shù)19可調(diào)參數(shù)如何處理文件更改日志增長的大小20文件更改日志的應(yīng)用程序編程接口21易于使用21兼容性22API 函數(shù)22文件更改日志29文件更改日志35Veritas F
7、ile System 和文件更改日志的升級和降級39反向路徑名稱查找40Inode40vxfs_inotopath_gen40目錄5第 3 章多卷支持42關(guān)于多卷支持42多卷支持的用途43卷應(yīng)用程序編程接口43管理卷集43文件系統(tǒng)的卷集44修改文件系統(tǒng)內(nèi)的卷44封裝和取消封裝卷45分配策略應(yīng)用程序編程接口45指示文件分配45創(chuàng)建并指派策略47已定義的策略47強制執(zhí)行策略48數(shù)據(jù)結(jié)構(gòu)48使用策略和應(yīng)用程序編程接口49定義并指派分配策略49使用卷應(yīng)用程序編程接口50第 4 章指定數(shù)據(jù)流52關(guān)于指定數(shù)據(jù)流52指定數(shù)據(jù)流的用途53指定數(shù)據(jù)流應(yīng)用程序編程接口53列出指定數(shù)據(jù)流55指定數(shù)據(jù)流名空間55其他
8、系統(tǒng)調(diào)用中的行為更改56指定數(shù)據(jù)流56應(yīng)用程序編程接口57命令參考資料58第 5 章Veritas File System I/O59關(guān)于 Veritas File System I/O59凍結(jié)和解凍59緩存顧問61直接 I/O62并行 I/O62無緩沖的 I/O63其他顧問63擴展區(qū)64擴展區(qū)屬性64保留: 為文件預(yù)分配空間65固定擴展區(qū)大小66目錄6擴展區(qū)屬性的應(yīng)用程序編程接口66分配標(biāo)志67用于固定擴展區(qū)大小的分配標(biāo)志69如何使用擴展區(qū)屬性 API69設(shè)置固定擴展區(qū)大小69第 6 章精簡回收71關(guān)于精簡71關(guān)于精簡回收71精簡回收應(yīng)用程序編程接口71vxfs_ts_reclaim 返回值
9、73索引741Veritas File System開發(fā)工具包本章節(jié)下列: 關(guān)于開發(fā)工具包 File System開發(fā)工具包的功能開發(fā)工具包包 所需的庫和頭文件 編譯環(huán)境關(guān)于開發(fā)工具包Veritas File System (VxFS)開發(fā)工具包 (SDK) 為開發(fā)提供了使用應(yīng)用程序編程接口 (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)用的集合,應(yīng)用程序可以使用這些調(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、應(yīng)用程序,使應(yīng)用程序可移植到任何 VxFS 目標(biāo)環(huán)境。隨后應(yīng)用程序就可以在 VxFS 目標(biāo)上運行, stubs 庫將找到隨 VxFS 目標(biāo)一起提供的動態(tài)庫。stubs 庫使用 vxfsutil.so 動態(tài)庫位置的默認(rèn)路徑。大多數(shù)情況下,應(yīng)使用默認(rèn)路徑。但可以通過將環(huán)境變量 LIBVXFSUTIL_DLL_PATH 設(shè)置為 vxfsutil.so 庫的路徑來覆蓋默認(rèn)路徑。此結(jié)構(gòu)使得部署應(yīng)用程序時出現(xiàn)的、與其他版本 VxFS 兼容的問題減至最低限度。文件更改日志VxFS 文件更改日志 (FCL) 跟蹤對文件系統(tǒng)中文件和目錄的更改。應(yīng)用程序(如,備份、Web crawler、搜索和索引引擎以及副本)
12、可以使用文件更改日志,它們通常掃描整個文件系統(tǒng),搜索自上一次掃描以來的修改。請參見第 12 頁的“關(guān)于文件更改日志文件”。多卷支持多卷支持 (MVS) 功能VxFS 文件系統(tǒng)使用多個 Veritas Volume Manager(VxVM) 卷作為基礎(chǔ)。管理員和應(yīng)用程序可以文件的位置,從而最大化有效性能,同時將開銷降至最低。此功能只能在 Veritas Volume Manager 中使用。此外,某些功能需要提供附加的請參見第 42 頁的“關(guān)于多卷支持”。鑰。API功能inotopathInode-to-pathnattr指定數(shù)據(jù)流FCL文件更改日志MVS多卷支持緩存顧問IOCTL 指令擴展區(qū)
13、IOCTL 指令凍結(jié)/解凍IOCTL 指令Veritas File System開發(fā)工具包9開發(fā)工具包包Veritas File System I/OVxFS 遵循系統(tǒng) V 接口定義 (SVID) 要求并支持用戶通過網(wǎng)絡(luò)文件系統(tǒng) (NFS) 進行。其他文件系統(tǒng)中不能提供所要求的性能功能的應(yīng)用程序,可利用 VxFS 增強版。開發(fā)工具包包VRTSfssdk包由 SDK 組成。VRTSfssdk包包含庫、頭文件和示例程序的源代碼及二進制文件格式,說明了 VxFS API 接口在開發(fā)和編譯應(yīng)用程序時的用法。包也包含本指南和 API 手冊頁。VRTSfssdk包的目錄結(jié)構(gòu)如下:VRTSfssdksrc包
14、含若干子目錄,并每個感的 Makefile 文件。的提供有示例基于GNUbin包含指向源目錄中所有示例程序的符號鏈接,以便于輕松件。二進制文include包含 API 庫和 ioctl 接口的頭文件。lib包含預(yù)編譯的 vxfsutil API 接口 stubs 庫。libsrc包含 vxfsutil API 接口 stubs 庫的源代碼??梢詥为殢?VxFS包獲取 VRTSfssdk包。要運行應(yīng)用程序或示例程序,具有的 VxFS 目標(biāo)必不可少。此外, 證。目標(biāo)系統(tǒng)上安裝所需功能的 VxFS所需的庫和頭文件VRTSfssdk包 安裝在 /opt 目錄中。關(guān)聯(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還提供有從標(biāo)準(zhǔn) Veritas 路徑指向這些文件的符號鏈接: /opt/VRTS/lib 和/opt/VRTS/include。在最新版本的 VxFS 和 VxFS SDK 中,標(biāo)準(zhǔn)路徑是默認(rèn)路徑。編譯環(huán)境SDK包將示例程序與編譯后的二進制文件一同安裝。運行示例程序的要求如下: 裝有 VRTSvxfs 適用版本的目標(biāo)系統(tǒng) Root 權(quán)限,這對某些程序而言是必不可少的 已裝入的 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 文件并用指向您編譯器的路徑對其進行修改。轉(zhuǎn)至 src 或 libsrc 目錄并運行 gmake 或 make 命令:# gmake3在寫入應(yīng)用程序后,請對其進行如下編譯:在
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 變量設(shè)置為系統(tǒng)上的此路徑:
19、CC=/opt/SUNWspro/SUNWspro/bin#CC=/usr/local/bin/gcc使用適合您的編譯器的路徑。轉(zhuǎn)至 src 或 libsrc 目錄,然后鍵入:2# gmake或# make2文件更改日志本章節(jié)下列: 關(guān)于文件更改日志文件類型 文件更改日志可調(diào)參數(shù) 文件更改日志的應(yīng)用程序編程接口 反向路徑名稱查找關(guān)于文件更改日志文件VxFS 文件更改日志 (FCL) 跟蹤對文件系統(tǒng)中文件和目錄的更改。以使用 FCL 為代表的應(yīng)用程序通常需要執(zhí)行以下任務(wù): 掃描整個文件系統(tǒng)或子集 發(fā)現(xiàn)自上次掃描以來的更改這些應(yīng)用程序可能: 備份實用程序、webcrawler、搜索引擎和副本程序。
20、注意:FCL 跟蹤數(shù)據(jù)更改的時間并更改類型,但不跟蹤實際的數(shù)據(jù)更改。由應(yīng)用程序負責(zé)檢查文件以確定更改過的數(shù)據(jù)。的更改文件更改日志 為 鏈接下列文件系統(tǒng)更改:文件更改日志關(guān)于文件更改日志文件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ā)所有新的應(yīng)用程序。請參見第 21 頁的“文件更改日志的應(yīng)用程序編程接口”。使用文件更改日志文件VxFS 通過向 FCL 文件附加與文件系統(tǒng)更改相關(guān)的更改。這樣,您就可以執(zhí)行以下操作:,來跟蹤對文件系統(tǒng)所做的 使用 FCL 確定通常在文件系統(tǒng)上進行的或在一個特定即時點之后在特定文件上進行的操作序列。例如,增量備份應(yīng)用程序可
22、掃描 FCL 文件,確定自文件系統(tǒng)上一次備份后哪些文件被添加或修改。 配置 FCL 跟蹤其他(例如,文件打開、I/O 統(tǒng)計數(shù)據(jù))和用戶 ID)。(例如,然后,可使用此收集下列數(shù)據(jù): 空間使用量統(tǒng)計數(shù)據(jù),用于確定不同類型數(shù)據(jù)的空間使用方式。文件更改日志關(guān)于文件更改日志文件14不同用戶在文件系統(tǒng)中使用不同文件的用法配置文件,可幫助確定最近過的數(shù)據(jù)及者。空間使用量當(dāng)文件系統(tǒng)接近,可使用 FCL 文件跟蹤空間使用量。 可搜索 FCL 文件查找最近創(chuàng)建的文件(文件創(chuàng)建)或?qū)懭氪_定新增的文件或最近增大的現(xiàn)有文件。根據(jù)應(yīng)用程序需要,可對整個 FCL 文件進行搜索,或者對與特定時間范圍對應(yīng)的部分 FCL 文件
23、進行搜索。此外,您可以查找用特定名稱創(chuàng)建的文件。例如,如果用戶正在 占用過多空間的 *.mp3 文件,可 FCL 文件查找用名稱 *.mp3 創(chuàng)建的文件。減少全面系統(tǒng)掃描VxFS 為在啟用 FCL 的文件系統(tǒng)上執(zhí)行的每個更新操作創(chuàng)建并記入 FCL。這些操作創(chuàng)建、刪除、重命名、模式更改和寫入。因此,增量備份應(yīng)用程序或根據(jù)文件名、文件屬性或者內(nèi)容維護文件系統(tǒng)索引的應(yīng)用程序,可以通過FCL 文件,檢測自從上一次備份或上一次索引更新以來發(fā)生更改的文件,來避免全面系統(tǒng)掃描。文件歷史跟蹤您可以通過掃描 FCL 文件和整合文件的 FCL可以使用與文件的創(chuàng)建、屬性更改、寫入序列來跟蹤文件的歷史。還和刪除相關(guān)的
24、 FCL,以跟蹤文件的歷史。文件更改日志的激活默認(rèn)情況下,停用 FCL 日志,但可以使用 fcladm 命令每個文件系統(tǒng)激活日志。請參見 fcladm(1M) 手冊頁。激活 FCL 日志件。關(guān)閉 FCL 日志后,新的 FCL將在文件系統(tǒng)發(fā)生更改時被附加到 FCL 文后,將進一步停止,但是 FCL 文件仍然為/lost+found/changelog。使用 fcladm 命令,您只能刪除 FCL 文件。FCL 文件中包含一個表示布局或是 FCL 文件的內(nèi)部表示形式的關(guān)聯(lián)版本,以及在FCL 文件中的列表。每當(dāng)發(fā)布 VxFS 的新版本時,將會出現(xiàn)下列情況: 在 FCL 文件中可能有的其他 FCL 文
25、件的內(nèi)部表示形式可能會發(fā)生更改文件更改日志關(guān)于文件更改日志文件15通過這種方式 FCL 文件版本獲得更新。例如,在 VxFS 4.1 中,默認(rèn)為版本 3。但是,由于 VxFS 5.0 及更高版本會版本 3 中不可用的其他集(例如,文件打開),因此,VxFS 5.0 及更高版本中的默認(rèn)版本是版本 4。為了向 VxFS 4.1 上開發(fā)的應(yīng)用程序提供兼容性,VxFS 5.0 及更高版本提供了一個用于在激活過程中指定 FCL 版本的選項。根據(jù)指定的版本,可以。對于大多數(shù)在 VxFS 5.0 及更高版本中新添加的或新類型的日志的日志(例如,文件打開和 I/O 統(tǒng)計數(shù)據(jù))都是可選的,默認(rèn)情況下處于關(guān)閉狀態(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)部布局對用戶是透明的,并且應(yīng)用程序可使用標(biāo)準(zhǔn)文件系統(tǒng)接口(例如,open(2)、(2) 和 lseek(2))來FCL 文件。不過,此 可能會導(dǎo)致將來的兼容性問題,這是因為如果基本的 FCL 布局和 FCL 版本發(fā)生了更改,則必須更改和重新編譯應(yīng)用程序,以適應(yīng)這些更改。VxFS 5.0 引入了一
27、個新的編程接口,即使磁盤上的 FCL 布局發(fā)生更改,該接口也會提供改進的兼容性。有了該 API,對于應(yīng)用程序來講,F(xiàn)CL 布局變得不再那么重要。因此,本節(jié)僅提供了對 FCL 布局的簡要說明。FCL 文件通常是一個包含 FCL 超級塊和 FCL的稀疏文件。FCL 文件中的第一個塊是 FCL 超級塊。此塊可以后接一個可選孔,以及包含有關(guān)文件系統(tǒng)中更改的 FCL。圖 2-1 描述了 FCL 文件格式。圖 2-1偏移 0x0FCL 文件格式第一次偏移文件系統(tǒng)塊界限文件系統(tǒng)塊界限最后一次偏移超級塊文件更改日志關(guān)于文件更改日志文件16文件更改日志超級塊對文件系統(tǒng)中文件和目錄的更改將為 FCL件中的第一個塊
28、)描述了 FCL 文件的狀態(tài)。超級塊指明下列操作: 是否啟用 FCL 日志 它是何時激活的 第一條和最后一條 FCL的當(dāng)前偏移 FCL 文件版本。超級塊(當(dāng)前在 FCL 文 當(dāng)前被跟蹤的集的掩碼 上次更改掩碼的時間使用 fcladm on 命令首次激活 FCL 時,將創(chuàng)建僅包含超級塊的 FCL 文件。使用fcladm rm 命令刪除 FCL 文件時,僅刪除超級塊。使用 fcladm on 激活 FCL 時,超級塊中的狀態(tài)及其激活時間將發(fā)生更改。只要任何文件系統(tǒng)活動導(dǎo)致被附加到 FCL 文件,最后一個偏移就會獲得更新。當(dāng) FCL 文件增大時,根據(jù)文件系統(tǒng)可調(diào)參數(shù) fcl_maxalloc 和 f
29、cl_keeptime,在FCL 文件開頭的最舊將在第一個偏移獲得更新時被丟掉,以一些空間。使用 fcladm 命令的 set 或 clear 選項更改在 FCL 文件中被跟蹤的集掩碼更改件掩碼和掩碼更改時間也將隨之更新。掩碼更改還會導(dǎo)致在 FCL 文件中。(包含舊掩碼更改和新掩碼更改)被文件更改日志FCL包含有關(guān)這些典型更改的:更改后的文件的 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設(shè)置文件屬性(分配策略、ACL 和擴展屬性)VX_FCL_EATTR_CHG設(shè)置文件擴展區(qū)保留VX_FCL_INORES_CHG設(shè)置文件擴展區(qū)大小VX_FCL_INOEX_CHG設(shè)置文件組所VX_FCL_IGRP_CHG設(shè)置文件模式VX_FCL_IMODE_CHG設(shè)置文件大小VX_FCL_DATA_TRUNCATE設(shè)置文件用戶所VX_FCL_IOWN_CHG設(shè)置文件的 mtimeVX_FCL_MTIME_CHG裁截文件VX_FCL_DATA_TRUNCATE文件更改
32、日志類型18更改在 FCL 中跟蹤的集VX_FCL_EVNTMSK_CHG注意:表 2-1 列出了當(dāng) fcladm on 命令激活 FCL 日志時,默認(rèn)件(除 fileopen 和 filestat 之外)。的所有事默認(rèn)情況下,也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寫入到每次寫操作的日志中。該取決于是在當(dāng)前文件末尾寫入還是在文件內(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以下顯示了當(dāng)文件 a 重命名為 b 并且這兩個文件均位于文件系統(tǒng)中時,寫入日志的FCL的典型序列:VX FCL_UNLINK(適用于文件 b,如果它已經(jīng))VX_FCL_RENAME(適用于將文件 a 重命名為 b)文件更改日志可調(diào)參數(shù)您可以使用 vxtunefs 命令設(shè)置四個 FCL 可調(diào)參數(shù)。請參見 vxtunefs(1M) 手冊頁。下列是四個可用 FCL 可調(diào)參數(shù):指定 FCL在它們可以被清除之前在 FCL 文件保留的持
35、續(xù)時間(以fcl_keeptime秒為)。最舊的將第一批被清除,這些位于文件的開頭。此外,如果對FCL 文件的分配超過fcl_maxalloc 字節(jié)數(shù),則將清除文件開頭的。默認(rèn)值為 0。請注意,fcl_keeptime 的優(yōu)先級高于 fcl_maxalloc。如果 FCL 文件超過 fcl_maxalloc 字節(jié)數(shù),但最舊的的生命周期尚未到達 fcl_keeptime 秒,則打孔。調(diào)整建議只有當(dāng)管理員希望確保在 FCL 中的保留時間達到需要調(diào)整 fcl_keeptime 可調(diào)參數(shù)。fcl_keeptimefcl_keeptime 參數(shù)設(shè)置為大于 FCL 掃描時間間隔的任意值。例如, 如果 FC
36、L 每 24 個小時掃描一次,則可以將 fcl_keeptime 設(shè)置為 25個小時。這樣可以防止在和處理 FCL之前將其清除。指定要分配給 FCL 文件的最大空間量(以字節(jié)為)。當(dāng)分配的空fcl_maxalloc間超過 fcl_maxalloc 時,將在文件的開頭打孔。結(jié)果,將清除并更新 FCL 超級塊中的第一個有效偏移。fcl_maxalloc 的最小值是4MB。默認(rèn)值是 fs_size/33。fcl_winterval指定 FCL 為同一 inode多次重寫、擴展寫入或裁截之前所經(jīng)歷的時間(以秒為)。這樣可以減少 FCL 中重復(fù)的數(shù)。fcl_winterval 超時基于每個 inode。
37、如果 inode 出現(xiàn)緩存不足并返回,則其寫入時間間隔將重置。這樣,在同一寫入時間間隔內(nèi),該文件會有多條寫入 。默認(rèn)值為 3600 秒。調(diào)整建議 應(yīng)該將 fcl_winterval 可調(diào)參數(shù)設(shè)置為小于 FCL 掃描時間間隔的值。例如,如果 FCL 每 24 個小時掃描一次,則可以將fcl_winterval 設(shè)置為少于 24 個小時。這樣可以確保在兩次掃描期間對于將要被重寫、擴展或裁截的每個文件,在 FCL 中至少有一條記錄。文件更改日志文件更改日志可調(diào)參數(shù)20指定后續(xù)打開文件的操作不生成其他 FCLfcl_ointerval的時間間隔(以秒為單位)。這有助于減少在 FCL 中的重復(fù)性文件打開
38、數(shù),特別是的跟蹤,在經(jīng)常通過 NFS 進行的情況下。如果還啟用了則在 fcl_ointerval 內(nèi)的后續(xù)文件打開可能會生成一條(如果后面的打開是由另一個用戶執(zhí)行的)。與 fcl_ointerval 類似,如果 inode 緩存不足并返回,或FCL 同步,則在同一打開時間間隔內(nèi)可能會有多個文件打開。默認(rèn)值為 600 秒。調(diào)整建議如果使用文件打開的應(yīng)用程序只需要知道,自從它上次掃描 FCL 以來是否有任何用戶了文件,則可以將fcl_ointerval 設(shè)置為兩次掃描之間的時間范圍內(nèi)的一個時間段。如果應(yīng)用程序關(guān)注對每次進行跟蹤,則可以將可調(diào)參數(shù)設(shè)置為零。在通過 NFS 大量文件系統(tǒng)的情況下,根據(jù)具
39、體的平臺和 NFS 實施,將可能大量的文件打開。在此情況下,建議將可調(diào)參數(shù)設(shè)置為更高的值,以避免 FCL 中大量的重復(fù)性。可調(diào)參數(shù)如何處理文件更改日志增長的大小圖 2-2 顯示了當(dāng) FCL 文件增大時清除的示例。左邊的 FCL 文件包含 8K 的塊且沒有打孔。當(dāng)文件系統(tǒng)發(fā)生活動時,便將活動在 FCL 中,這導(dǎo)致右邊的 FCL 文件增大。當(dāng)FCL 文件大小到達fcl_maxalloc 可調(diào)參數(shù)指定的所的最大大小時,將會清除更舊的并空間。 FCL 功能只清除其時間早于fcl_keeptime 指定的時間的那些。 被的空間始終以一個內(nèi)部孔大小為。圖 2-2 顯示了在 FCL 文件中以 8K 為當(dāng) F
40、CL 文件首次超過最大分配時,舊的空間的文件系統(tǒng)。數(shù)是 20K,程序?qū)⑶宄?16K 的。這樣會在 FCL 超級塊后面留下一個 16K 的孔。FCL 超級塊中的第一個有效偏移將更新為 24K。文件更改日志文件更改日志的應(yīng)用程序編程接口21圖 2-2偏移 0x0FCL清除示例偏移 0x0第一次偏移 = 8K16K 孔洞偏移 = 24KBFCL 后:在偏移 8K 處16K 孔洞FCL 前:沒有孔洞文件更改日志的應(yīng)用程序編程接口除通過 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的大小都是固定的,并且僅包含默認(rèn)的,例如,inode編號或時間戳。但是,有些的大小是可變的,例如,文件刪除或重命名記錄。這些包含其他,例如,被刪除或重命名的文件的名稱。若要確保任何文件系統(tǒng)塊開頭的少數(shù)字節(jié)始終是有效的 FCL(如果文件名塊邊界),可以跨磁盤上的多條對文件系統(tǒng)塊進行拆分。以前,您需要寫入其他代碼來組合這些以獲得文件名?,F(xiàn)在,VxFS 5.0 及更高版本中的 API 提供了一種機制,可以直接單個組合邏輯。這使得
42、應(yīng)用程序?qū)?API 的應(yīng)用更容易。通過 API,應(yīng)用程序還可以指定一個篩選器,以指示所關(guān)注的子集并僅返回所需。超級塊超級塊文件更改日志文件更改日志的應(yīng)用程序編程接口22兼容性通過 API,應(yīng)用程序可不受FCL 布局更改影響的FCL。例如,考慮這樣一個方案,應(yīng)用程序可直接并解釋磁盤上的FCL。如果下一個 VxFS版添加或更改了在 FCL 文件中的了新方式,則應(yīng)用程序需要重新編寫或至少重新編譯,以適應(yīng)這種更改(在先前的 VxFS 版本中)。通過中間 API,磁盤上的 FCL 布局對于應(yīng)用程序是隱藏的,因此,即使 FCL 的磁盤布局發(fā)生了更改,API 也會在內(nèi)部轉(zhuǎn)換數(shù)據(jù),并向用戶返回期望的輸出。用戶
43、應(yīng)用程序仍可以繼續(xù)運行而無需重新編譯或重新編寫。這了 FCL 布局更改對程序的影響,并為現(xiàn)有的應(yīng)用程序提供更兼容性。API 函數(shù)API 使用下列類型的函數(shù):FCL的函數(shù) 尋找偏移和時間戳的函數(shù)文件更改日志的函數(shù)以下是FCL的常見函數(shù):vxfs_fcl_open打開 FCL 文件并返回進一步操作可以使用的句柄。所有通過 API對 FCL 文件進行的后續(xù)都必須使用該句柄。vxfs_fcl_關(guān)閉 FCL 文件并清除與該句柄關(guān)聯(lián)的資源vxfs_fcl_getinfo返回 FCL 版本號以及 FCL 文件的狀態(tài)(打開/關(guān)閉)vxfs_fcl_將用戶感的 FCL到用戶使用的緩沖區(qū)vxfs_fcl_copy
44、recFCL。如果源新的位置。包含指針,則會重定位這些指針以指向?qū)ふ椅募娜罩局械钠坪蜁r間戳的函數(shù)用戶可選擇根據(jù)他們停止使用的偏移尋找文件更改日志中的特定點,或?qū)ふ抑付〞r間后的第一條。下列函數(shù)可以尋找 FCL 中的偏移和時間戳:vxfs_fcl_getcookie返回一個內(nèi)含當(dāng)前 FCL 激活時間和當(dāng)前偏移的不透明的結(jié)構(gòu)(以下稱為 cookie)??梢员4嬖?cookie,并稍后將其傳遞到vxfs_fcl_seek 中,以便從上次應(yīng)用程序停止的位置繼續(xù)。文件更改日志文件更改日志的應(yīng)用程序編程接口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 并打開與裝入點(當(dāng)前為mount_point/lost+found/changelog)關(guān)聯(lián)的 FCL 文件。vxfs_fcl_open 然后確定它是否為有效 FCL 文件,以及 FCL 文件版本是否與庫兼容。然后,vxfs_fcl_open() 函數(shù)將關(guān)于FCL 文件的元數(shù)據(jù)的內(nèi)部數(shù)據(jù)結(jié)構(gòu),并用指針填充 *handle。提取到一個不透明就像 lseek(2) 和(2) 系統(tǒng)調(diào)用一樣,F(xiàn)CL 文件 *handle 中有一個內(nèi)部偏移,用于指示文件中下次開始的位置。打開 FCL 文件后,將此偏移設(shè)置
47、為 FCL文件中的第一個有效偏移。返回值完成后,將向調(diào)用方返回 0 并且句柄非空。否則,API 返回一個非零值,并且句柄設(shè)置為 NULL。此外還將設(shè)置全局值錯誤號以指明錯誤。vxfs_fcl_vxfs_fcl_關(guān)閉句柄的 FCL 文件。所有與該句柄一起分配的數(shù)據(jù)結(jié)構(gòu)將被清除。調(diào)用 vxfs_fcl_之后不應(yīng)再使用該句柄。參數(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);文件更改日志文件更改日志的應(yīng)用程序編程接口24vxfs_fcl_getinfo() 函數(shù)返回由 fcl_info 指向的 FCL結(jié)構(gòu)中有關(guān) FCL 文件的。它從 FCL 超級塊獲得此。struct fcl_info uint32_tfcl_version; uint32_tfcl_state;能夠識別與每條關(guān)聯(lián)的類型的智能應(yīng)用程序,可以通過 fcl_version 確定FCL 文件是否包含所需。 例如,版本 3 FCL 文件從不包含以及 FCL。 如果fcl_state 為FCLS_OFF ,則應(yīng)用程序可以推斷出,由于文件系統(tǒng)活動而沒有任何被添加到 FCL 文件。返回值0 表示;否則,
49、將為錯誤設(shè)置錯誤號,并返回一個非零值。vxfs_fcl_通過此函數(shù),應(yīng)用程序可以實際文件或作為邏輯在 FCL 中的目錄更改。每個都返回一個 struct fcl_record 類型。通過 vxfs_fcl_,應(yīng)用程序可以指定一個包含一組期望的篩選器。參數(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 是位掩碼,用于指定應(yīng)用程序感的集。它應(yīng)該是在 fcl.h頭文件中指定的掩碼集的“邏輯或”。例如,如果 eventmask 為(VX_FCL_CREATE_MASK | VX_FCL_UNLINK_MASK),vxfs_fcl_僅返回文件創(chuàng)建和刪除。如果應(yīng)用程序需要所有類型,該應(yīng)用程序可以將默認(rèn) eventmask 掩碼指定為 FCL_ALL_V4_EVENTS。這將返回 FCL 文件中的所有有效版本 4 FCL 記錄。請參見第 17 頁的表 2-1。文件更改日志文件更改日志的應(yīng)用程序編程接口25注意:
51、如果在 eventmask 中設(shè)置了 VX_FCL_EVENTMASKCHG_MASK,并且vxfs_fcl_返回的是緩沖區(qū)中的最后一條包含一條 VX_FCL_EVENTMASK_CHG,則它始終。這樣,應(yīng)用程序可以根據(jù)需要重新調(diào)整eventmask。此外,如果應(yīng)用程序從 eventmask 更改中發(fā)現(xiàn)某個特定不再被,則它可以決定停止進一步。 *nentries 用于指定在調(diào)用 vxfs_fcl_過程中應(yīng)讀入緩沖區(qū)的條目數(shù)。如緩沖區(qū)能夠容納的最大條目數(shù)。果 *nentries 為 0,vxfs_fcl_將輸出如果沒有錯誤,*buf 包含 struct fcl_record 類型的 *nentr
52、ies FCL。如果請求的條目數(shù)量與傳遞大小的緩沖區(qū)不匹配,則將返回 FCL_ENOSPC 錯誤。在這種情況下,將更新 *bufsz 以便使包含的緩沖區(qū)大小能夠容納請求數(shù)量的應(yīng)用程序可以使用此方式來重新分配一個更大緩沖區(qū),然后重新調(diào)用。vxfs_fcl_。如果沒有錯誤,*bufsz 將發(fā)生更改。如果調(diào)用vxfs_fcl_時沒有錯誤,*nentries 將會更新以包含讀入緩沖區(qū)的條目數(shù)。如果應(yīng)用程序已到達文件的末尾并且沒有要的值將均為零。的,則 *nentries 和返回返回值0 表示;非零表示出現(xiàn)錯誤。注意:如果緩沖區(qū)中沒有足夠的空間來返回的是緩沖區(qū)的最小大小。當(dāng)前,將返回 FCL_ENOSPC。*bufsz調(diào)用 vxfs_fcl_后,當(dāng)前的文件位置將會向前移動,以便下次調(diào)用vxfs_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年單身公寓室內(nèi)設(shè)計工程合同范本
- 中國銀行2025年個人汽車貸款合同
- 2025年儲蓄存款合同示范
- 2025年農(nóng)業(yè)機械購置合同示范文本
- 2025年個性化櫥柜買賣合同范本
- 2025年合作伙伴店鋪續(xù)約合同范例
- 2025年二手安居房買賣合同樣本
- 2025年度新型智能農(nóng)業(yè)用地租賃合同終止協(xié)議書
- 2025年互聯(lián)網(wǎng)企業(yè)員工競業(yè)禁止協(xié)議補償金執(zhí)行細則合同
- 天津2025年度房屋租賃合同租賃期限調(diào)整與續(xù)租協(xié)議
- 2020年中秋國慶假日文化旅游市場安全生產(chǎn)檢查表
- 03J111-1 輕鋼龍骨內(nèi)隔墻
- 人教版高中數(shù)學(xué)選擇性必修二導(dǎo)學(xué)案
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評估報告
- 心有榜樣行有力量 -從冬奧冠軍徐夢桃身上感受青春奮斗初中主題班會
- GB/T 3860-1995文獻敘詞標(biāo)引規(guī)則
- 七年級英語下冊閱讀理解10篇
- 設(shè)計質(zhì)量、進度保證措施
- 醫(yī)院評審工作臨床科室資料盒目錄(15個盒子)
- Unit2 School life - 復(fù)習(xí)課課件 牛津譯林版英語八年級上冊
- 中醫(yī)腰痛病個案護理
評論
0/150
提交評論