在Adobe Experience Manager(AEM)中,二進位資料可以獨立於內容節點儲存。 二進位資料被儲存在資料儲存中,而內容節點被儲存在節點儲存中。
可以使用OSGi配置配置資料儲存和節點儲存。 每個OSGi配置使用持久標識符(PID)被引用。
要配置節點儲存和資料儲存,請執行以下步驟:
將快速AEM啟動JAR檔案複製到其安裝目錄。
建立資料夾 crx-quickstart/install
的子菜單。
首先,通過建立包含要在中使用的節點儲存選項名稱的配置檔案來配置節點儲存 crx-quickstart/install
的子菜單。
例如,文檔節點儲存(是AEMMongoMK實現的基礎)使用檔案 org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
。
編輯檔案並設定配置選項。
使用要使用的資料儲存的PID建立配置檔案。 編輯檔案以設定配置選項。
開始AEM。
段節點儲存是Adobe在6中實現TarMK的基礎AEM。 它使用 org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
用於配置的PID。
段節點儲存的PID已從 org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService in previous versions
AEM6到 org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
6AEM.3確保進行必要的配置調整以反映此更改。
可以配置以下選項:
repository.home
:儲存與儲存庫相關資料的儲存庫主目錄的路徑。 預設情況下,段檔案儲存在 crx-quickstart/segmentstore
的子菜單。
tarmk.size
:段的最大大小(MB)。 預設最大值為256MB。
customBlobStore
:指示使用自定義資料儲存的布爾值。 6.3及更高版本AEM的預設值為true。 6.AEM3之前的預設值為false。
以下是示例 org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
檔案:
#Path to repo
repository.home="crx-quickstart/repository"
#Max segment size
tarmk.size=I"256"
#Custom data store
customBlobStore=B"true"
文檔節點儲存是MongoMK實AEM現的基礎。 它使用 org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService
PID。 以下配置選項可用:
mongouri
:的 蒙戈URI 連接到Mongo資料庫所需。 預設值為 mongodb://localhost:27017
db
:Mongo資料庫的名稱。 預設值為 橡樹 。 但是,新的AEM6個安裝使用 aem作者 作為預設資料庫名。
cache
:快取大小(MB)。 它分佈在DocumentNodeStore中使用的各種快取中。 預設為 256
。
changesSize
:Mongo中用於快取差異輸出的封蓋集合的大小(MB)。 預設為 256
。
customBlobStore
:指示將使用自定義資料儲存的布爾值。 預設為 false
。
以下是示例 org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
檔案:
#Mongo server details
mongouri="mongodb://localhost:27017"
#Name of Mongo database to use
db="aem-author"
#Store binaries in custom BlobStore
customBlobStore=B"false"
在處理大量二進位檔案時,建議使用外部資料儲存而不是預設節點儲存,以最大化效能。
例如,如果您的項目需要大量媒體資產,則將它們儲存在檔案或S3資料儲存下會使訪問它們比直接儲存在MongoDB中更快。
與MongoDB相比,檔案資料儲存提供了更好的效能,而且Mongo備份和恢復操作在大量資產的情況下也更慢。
下面介紹了不同資料儲存和配置的詳細資訊。
這是 檔案資料儲存 《野兔2》 它提供了一種將二進位資料作為普通檔案儲存在檔案系統上的方法。 它使用 org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore
PID。
這些配置選項可用:
repository.home
:儲存各種儲存庫相關資料的儲存庫主目錄的路徑。 預設情況下,二進位檔案將儲存在 crx-quickstart/repository/datastore
的子菜單。
path
:儲存檔案的目錄的路徑。 如果指定,則優先於 repository.home
值。
minRecordLength
:資料儲存中儲存的檔案的最小大小(以位元組為單位)。 小於此值的二進位內容將被內嵌。
使用NAS儲存共用檔案資料儲存時,請確保僅使用高效能設備以避免效能問題。
可AEM以配置為在Amazon的簡單儲存服務(S3)中儲存資料。 它使用 org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
用於配置的PID。
為了啟用S3資料儲存功能,需要下載並安裝包含S3資料儲存連接器的功能包。 轉到 Adobe儲存庫 並從功能包的1.8.x版下載最新版本(例如com.adobe.granite.oak.s3connector-1.8.0.zip)。 此外,您還需要下載和安裝AEM上列出的最新Service Pack 《 AEM 6.4 Service Pack發行說明》 的子菜單。
當將AEM6.4與TarMK一起使用時,二進位檔案將預設儲存在 FileDataStore
。 要將TarMK與S3資料儲存區一起使用,需AEM要使用 crx3tar-nofds
runmode,例如:
java -jar aem6.4.jar -r crx3tar-nofds
下載後,您可以按如下方式安裝和配置S3連接器:
將功能包zip檔案的內容解壓到臨時資料夾。
轉到臨時資料夾並導航到以下位置:
jcr_root/libs/system/install
將上述位置的所有內容複製到 <aem-install>/crx-quickstart/install.
如果AEM已配置為使用Tar或MongoDB儲存,請從 aem-install/crx-quickstart/install
資料夾。 需要刪除的檔案包括:
For MongoMK: org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
For TarMK: org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
返回到提取功能包的臨時位置,並複製以下資料夾的內容:
jcr_root/libs/system/config
至
<aem-install>/crx-quickstart/install
確保僅複製當前配置所需的配置檔案。 對於專用資料儲存和共用資料儲存設定,複製 org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
的子菜單。
在群集設定中,逐個對群集的所有節點執行上述步驟。 另外,確保對所有節點使用相同的S3設定。
編輯檔案並添加安裝程式所需的配置選項。
開始AEM。
如果需要升級到1.8.x S3連接器的新版本(例如,從1.8.0到1.8.1),請執行以下步驟:
停止實AEM例。
導航到 <aem-install>/crx-quickstart/install/15
的子AEM目錄。
備份後,通過刪除S3連接器中的所有jar檔案,刪除舊版本的S3連接器及其依賴項 <aem-install>/crx-quickstart/install/15
資料夾,例如:
上述檔案名僅用於說明目的,並且不是確定的。
從下載 Adobe儲存庫。
將內容解壓縮到單獨的資料夾,然後導航到 jcr_root/libs/system/install/15
。
將jar檔案複製到 <aem-install>/crx-quickstart/install/15AEM。
啟AEM動並檢查連接器功能。
可將配置檔案與以下選項一起使用:
accessKey:AWS接入密鑰。
密鑰:AWS的秘密訪問密鑰。 注: 當 accessKey
或 secretKey
未指定 IAM角色 用於驗證。
s3Bucket:儲存段名稱。
s3區域:桶區域。
路徑:資料儲存的路徑。 預設值為 <aem install="" folder="">/資料庫/資料儲存庫
minRecordLength:應儲存在資料儲存中的對象的最小大小。 最小/預設值為 16KB。
maxCachedBinarySize:大小小於或等於此大小的二進位檔案將儲存在記憶體快取中。 大小以位元組為單位。 預設值為17408 (17 KB)。
cacheSize:快取的大小。 該值以位元組為單位指定。 預設值為 64GB。
機密:僅在將無聯機複製用於共用資料儲存設定時使用。
stagingSplitPercentage:配置為用於暫存非同步上載的快取大小的百分比。 預設值為 10。
上載線程:用於非同步上載的上載線程數。 預設值為 10。
stagingPurgeInterval:從暫存快取清除已完成上載的間隔(秒)。 預設值為 300 秒(5分鐘)。
臨時重試間隔:上載失敗的重試間隔(秒)。 預設值為 600 秒(10分鐘)。
美國標準 | us-standard |
美國西部 | us-west-2 |
美國西部(北加利福尼亞) | us-west-1 |
歐盟(愛爾蘭) |
EU |
亞太(新加坡) |
ap-southeast-1 |
亞太(雪梨) |
ap-southeast-2 |
亞太(東京) | ap-northeast-1 |
南美洲(聖保羅) |
sa-east-1 |
DataStore快取
DataStore實現 S3DataStore
。 CachingFileDataStore
和 AzureDataStore
支援本地檔案系統快取。 的 CachingFileDataStore
當DataStore位於NFS(網路檔案系統)上時,實現非常有用。
從較舊的快取實現(Oak 1.6之前)升級時,本地檔案系統快取目錄的結構存在差異。 在舊快取結構中,下載的檔案和上載的檔案都直接放在快取路徑下。 新結構將下載和上載分離,並將它們儲存在名為 upload
和 download
在快取路徑下。 升級過程應是無縫的,任何掛起的上載都應安排上載,並且在初始化時,快取中任何先前下載的檔案都將放入快取中。
您還可以使用 datastorecacheupgrade
橡樹跑。 有關如何執行命令的詳細資訊,請檢查 自述 橡木跑道艙。
快取具有大小限制,可使用cacheSize參數配置。
下載
在從DataStore訪問請求的檔案/blob之前,將檢查本地快取中的記錄。 當快取超出配置的限制時(請參見 cacheSize
參數)時,將檔案添加到快取中,然後將逐出某些檔案以回收空間。
非同步上載
快取支援非同步上載到DataStore。 檔案將在快取中(在檔案系統上)本地存放,非同步作業將開始上載檔案。 非同步上載的數量受暫存快取大小的限制。 使用 stagingSplitPercentage
的下界。 此參數定義用於暫存快取的快取大小的百分比。 此外,可用於下載的快取百分比計算為 (100 - stagingSplitPercentage
)*cacheSize
。
非同步上載是多線程的,並且線程數是通過 uploadThreads
的下界。
上載完成後,檔案將移到主下載快取。 當臨時快取大小超過其限制時,檔案將同步上載到DataStore,直到先前的非同步上載完成,並且在臨時快取中再次有可用空間。 上載的檔案通過週期作業從暫存區域中刪除,該定期作業的間隔由 stagingPurgeInterval
的下界。
失敗的上載(例如,由於網路中斷)會被置於重試隊列中並定期重試。 使用 stagingRetryInterval parameter
。
要使用S3配置無二進位複製,需要執行以下步驟:
安裝作者和發佈實例並確保它們已正確啟動。
開啟頁面以轉到 http://localhost:4502/etc/replication/agents.author/publish.html。
按 編輯 按鈕 設定 的子菜單。
更改 序列化 類型選項 二進位。
添加參數'' binaryless
= true
」。 更改後,URI應與以下內容類似:
http://localhost:4503/bin/receive?sling:authRequestLogin=1&binaryless=true
重新啟動所有作者和發佈實例以使更改生效。
使用以下命令解包CQ快速啟動:
java -jar cq-quickstart.jar -unpack
解壓AEM縮後,在安裝目錄內建立一個資料夾 crx快速啟動/安裝。
在 crx-quickstart
資料夾:
建立檔案後,根據需要添加配置選項。
按上述說明安裝S3資料儲存所需的兩個捆綁包。
確保已安裝MongoDB並且已安裝 mongod
正在運行。
以下AEM命令開始:
java -Xmx1024m -XX:MaxPermSize=256M -jar cq-quickstart.jar -r crx3,crx3mongo
對第二個實例重複步驟1AEM至4。
啟動第二個AEM實例。
首先,在共用資料儲存所需的每個實例上建立資料儲存配置檔案:
FileDataStore
,建立名為 org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
然後放在 <aem-install>/crx-quickstart/install
的子菜單。rg.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
的 <aem-install>/crx-quickstart/install
資料夾。修改每個實例上的資料儲存配置檔案以指向同一資料儲存。 有關詳細資訊,請參見 這篇文章。
如果實例已從現有伺服器中克隆,則需要刪除 clusterId
在儲存庫離線時使用最新的oak-run工具。 您需要運行的命令是:
java -jar oak-run.jar resetclusterid < repository path | Mongo URI >
如果配置了段節點儲存,則需要指定儲存庫路徑。 預設情況下,路徑為 <aem-install-folder>/crx-quickstart/repository/segmentstore.
如果配置了文檔節點儲存,則可以使用 Mongo連接字串URI。
Oak-run工具可從以下位置下載:
https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run/
請注意,根據您在安裝時使用的Oak版本,需要使用不同版本的工AEM具。 使用該工具之前,請檢查下面的版本要求清單:
最後,驗證配置。 為此,您需要查找由共用資料儲存的每個儲存庫添加到資料儲存的唯一檔案。 檔案的格式為 repository-[UUID]
,其中UUID是每個單個儲存庫的唯一標識符。
因此,正確的配置應具有與共用資料儲存的儲存庫相同的唯一檔案。
檔案儲存方式不同,具體取決於資料儲存方式:
FileDataStore
檔案是在資料儲存資料夾的根路徑下建立的。S3DataStore
檔案是在配置的S3儲存桶中 META
的子菜單。可AEM以配置為在Microsoft的Azure儲存服務中儲存資料。 它使用 org.apache.jackrabbit.oak.plugins.blob.datastore.AzureDataStore.config
用於配置的PID。
為了啟用Azure資料儲存功能,需要下載並安裝包含Azure連接器的功能包。 轉到 Adobe儲存庫 並從功能包的1.6.x版下載最新版本(例如com.adobe.granite.oak.azureblobconnector-1.6.3.zip)。
當將AEM6.4與TarMK一起使用時,預設情況下二進位檔案將儲存在FileDataStore中。 若要將TarMK與Azure DataStore一起使用,AEM您需要開始使用 crx3tar-nofds
runmode,例如:
java -jar aem6.4.jar -r crx3tar-nofds
下載後,您可以按如下方式安裝和配置Azure連接器:
將功能包zip檔案的內容解壓到臨時資料夾。
轉到臨時資料夾並複製 jcr_root/libs/system/install
到 <aem-install>crx-quickstart/install
的子菜單。
如果AEM已配置為使用Tar或MongoDB儲存,請從 /crx-quickstart/install
資料夾。 需要刪除的檔案包括:
ForMongoMK:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
對於TarMK:
org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
返回到提取特徵包的臨時位置並複製 jcr_root/libs/system/config
到 <aem-install>/crx-quickstart/install
的子菜單。
編輯配置檔案並添加安裝程式所需的配置選項。
開始AEM。
可將配置檔案與以下選項一起使用:
azureSas="":在連接器1.6.3版中,添加了Azure共用訪問簽名(SAS)支援。 如果配置檔案中同時存在SAS和儲存憑據,則SAS具有優先順序。 有關SAS的詳細資訊,請參閱 正式檔案。 確保「=」字元像「=」一樣轉義。
azureBlobEndpoint="":Azure Blob終結點。 例如,https://<storage-account>.blob.core.windows.net。
accessKey="":儲存帳戶名。 有關MicrosoftAzure身份驗證憑據的詳細資訊,請參閱 正式檔案。
secretKey="":儲存訪問密鑰。 確保「=」字元像「=」一樣轉義。
container="":MicrosoftAzure Blob儲存容器名稱。 容器是一組Blob的分組。 有關其他詳細資訊,請閱讀 正式檔案。
maxConnections="":每個工序同時請求的併發數。 預設值為 1。
maxErrorRetry="":每個請求的重試次數。 預設值為 3。
socketTimeout="":用於請求的超時間隔(毫秒)。 預設值為5分鐘。
除上述設定外,還可以配置以下設定:
<aem-install>/repository/datastore.
所有設定都應放在引號之間,例如:
accessKey="ASDASDERFAERAER"
secretKey="28932hfjlkwdo8fufsdfas\=\="
資料儲存垃圾收集過程用於去除資料儲存中任何未使用的檔案,從而釋放該過程中寶貴的磁碟空間。
您可以通過以下方式運行資料儲存垃圾收集:
正在轉到位於 https://<serveraddress:port>/system/console/jmx
搜索 儲存庫管理。 找到儲存庫管理器MBean後,按一下它可開啟可用選項。
滾動到頁面結尾,然後按一下 startDataStoreGC(布爾markOnly) 的子菜單。
在以下對話框中,輸入 false
為 markOnly
參數,然後按一下 調用:
的 markOnly
paramater表示垃圾收集的掃描階段是否將運行。
在群集或共用資料儲存設定(使用Mongo或Segment Tar)中執行垃圾收集時,日誌可能會顯示無法刪除某些Blob ID的警告。 這是因為先前垃圾收集中刪除的Blob ID被沒有ID刪除資訊的其他群集或共用節點錯誤地再次引用。 因此,當執行垃圾收集時,它會在嘗試刪除上次運行中已刪除的ID時記錄警告。 此行為不影響效能或功能。
使用較新版本AEM的,資料儲存垃圾收集也可以在由多個儲存庫共用的資料儲存上運行。 為了能夠在共用資料儲存上運行資料儲存垃圾收集,請執行以下步驟:
確保為資料儲存垃圾收集配置的任何維護任務在共用資料儲存的所有儲存庫實例上都被禁用。
運行中提及的步驟 二進位垃圾收集 單獨 全部 共用資料儲存的儲存庫實例。 但是,請確保輸入 true
為 markOnly
參數,然後按一下「調用」按鈕:
在所有實例上完成上述過程後,再次運行資料儲存垃圾收集 任何 例:
false
為 markOnly
的雙曲餘切值。這將整理使用之前使用的標籤階段找到的所有檔案,並從資料儲存中刪除未使用的其餘檔案。