在AEM 6中設定節點存放區和資料存放區 configuring-node-stores-and-data-stores-in-aem

簡介 introduction

在Adobe Experience Manager (AEM)中,二進位資料可與內容節點分開儲存。 二進位資料儲存在資料存放區中,而內容節點儲存在節點存放區中。

資料存放區和節點存放區都可以使用OSGi設定來設定。 每個OSGi設定都是使用持續性識別碼(PID)來參考。

設定步驟 configuration-steps

若要同時設定節點存放區和資料存放區,請執行下列步驟:

  1. 將AEM quickstart JAR檔案複製到其安裝目錄。

  2. 建立資料夾 crx-quickstart/install 位於安裝目錄中。

  3. 首先,透過以您要在中使用的節點存放區選項名稱來建立組態檔,以設定節點存放區 crx-quickstart/install 目錄。

    例如,檔案節點存放區(AEM MongoMK實作的基礎)會使用檔案 org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config.

  4. 編輯檔案,並設定組態選項。

  5. 以您要使用之資料存放區的PID建立設定檔。 編輯檔案以設定組態選項。

    note note
    NOTE
    另請參閱 節點存放區設定資料存放區設定 以取得組態選項。
  6. 啟動AEM。

節點存放區設定 node-store-configurations

CAUTION
較新版本的Oak為OSGi設定檔案採用新的命名方案和格式。 新的命名配置要求配置檔案必須命名為 .config 而新格式需要輸入值,而且 在此處記錄.
如果您從舊版Oak升級,請務必備份 crx-quickstart/install資料夾優先。 升級之後,將資料夾內容還原至升級安裝,並修改組態檔的副檔名,從 .cfg.config.
如果您正在閱讀本文章,為從的升級做準備 AEM 5.x 安裝,請務必參閱 升級 檔案優先。

區段節點存放區 segment-node-store

區段節點存放區是Adobe在AEM6中實施TarMK的基礎。 它會使用 org.apache.jackrabbit.oak.segment.SegmentNodeStoreService 設定的PID。

CAUTION
區段節點存放區的PID已從變更 org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService in previous versions / AEM 6至 org.apache.jackrabbit.oak.segment.SegmentNodeStoreService 在AEM 6.3中。請務必進行必要的設定調整以反映此變更。

您可以設定下列選項:

  • repository.home:存放庫相關資料儲存所在的存放庫首頁的路徑。 依預設,區段檔案儲存在 crx-quickstart/segmentstore 目錄。

  • tarmk.size:區段大小上限(以MB為單位)。 預設最大為256MB。

  • customBlobStore:表示使用自訂資料存放區的布林值。 AEM 6.3及更高版本的預設值為true。 AEM 6.3之前的預設值為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"

檔案節點存放區 document-node-store

檔案節點存放區是AEM MongoMK實作的基礎。 它會使用 org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService* *PID。 下列組態選項可供使用:

  • mongouri:此 MongoURI 必須連線至Mongo資料庫。 預設值為 mongodb://localhost:27017

  • db:Mongo資料庫的名稱。 預設值為 Oak . However, new AEM 6 installations use **aem-author** 作為預設資料庫名稱。

  • cache:快取大小。 這會分散在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"

資料存放區設定 data-store-configurations

在處理大量二進位檔時,建議您使用外部資料存放區,而非預設節點存放區,以發揮最大效能。

例如,如果您的專案需要許多媒體資產,將它們儲存在File或S3 Data Store底下,比直接將它們儲存在MongoDB中更快獲得存取許可權。

檔案資料存放區提供比MongoDB更好的效能,而且大量資產的Mongo備份和還原作業也較慢。

不同資料存放區和設定的詳細資訊如下所述。

NOTE
若要啟用自訂資料存放區,您必須確定 customBlobStore 設為 true 在個別節點存放區組態檔(區段節點存放區檔案節點存放區)。

檔案資料存放區 file-data-store

此為的實作 FileDataStore 在Jackrabbit 2中展示。 它提供一種將二進位資料儲存為檔案系統上一般檔案的方法。 它會使用 org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore PID。

這些組態選項可供使用:

  • repository.home:儲存各種存放庫相關資料的存放庫首頁的路徑。 根據預設,二進位檔案會儲存在 crx-quickstart/repository/datastore 目錄

  • path:要儲存檔案的目錄路徑。 若指定,其優先順序會高於 repository.home

  • minRecordLength:儲存在資料存放區的檔案大小下限(位元組)。 系統會內嵌小於此值的二進位內容。

NOTE
使用NAS來儲存共用檔案資料存放區時,請務必只使用高效能裝置以避免效能問題。

Amazon S3資料存放區 amazon-s-data-store

AEM可設定為將資料儲存在Amazon的Simple Storage Service (S3)中。 它會使用 org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config 設定的PID。

NOTE
AEM 6.5支援在Amazon的S3儲存資料,但並未延伸至在其他平台儲存資料,這些平台的廠商可能有自己的Amazon S3 API實作。

若要啟用S3資料存放區功能,必須下載及安裝包含S3資料存放區聯結器的Feature Pack。 前往 Adobe存放庫 並從feature pack 1.10.x版(例如com.adobe.granite.oak.s3connector-1.10.0.zip)下載最新版本。 AEM此外,您必須下載並安裝列於 AEM 6.5發行說明 頁面。

NOTE
搭配TarMK使用AEM時,二進位檔預設會儲存在 FileDataStore. AEM若要搭配S3資料存放區使用TarMK,您必須使用 crx3tar-nofds 執行模式,例如:
java -jar <aem-jar-file>.jar -r crx3tar-nofds

下載後,您可以依照以下步驟安裝和設定S3 Connector:

  1. 將Feature Pack zip檔案的內容解壓縮至暫存資料夾。

  2. 移至暫存資料夾,並導覽至下列位置:

    code language-xml
    jcr_root/libs/system/install
    

    將以上位置的所有內容複製到 <aem-install>/crx-quickstart/install.

  3. 如果AEM已設定為搭配Tar或MongoDB儲存體使用,請從​ 中移除任何現有的設定檔<aem-install>/crx-quickstart/安裝 資料夾。 必須移除的檔案包括:

    • For MongoMK: org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
    • For TarMK: org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
  4. 回到已擷取功能套件的暫存位置,並複製下列資料夾的內容:

    • jcr_root/libs/system/config

    • <aem-install>/crx-quickstart/install

    請確定您僅複製目前組態所需的組態檔。 對於專用資料存放區和共用資料存放區設定, org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config 檔案。

    note note
    NOTE
    在叢集設定中,請逐一在叢集的所有節點上執行上述步驟。 此外,請務必對所有節點使用相同的S3設定。
  5. 編輯檔案並新增安裝程式所需的設定選項。

  6. 啟動AEM。

升級至新版1.10.x S3 Connector upgrading-to-a-new-version-of-the-s-connector

若要升級為1.10.x S3聯結器的新版本(例如從1.10.0到1.10.4),請遵循下列步驟:

  1. 停止AEM執行個體。

  2. 瀏覽至 <aem-install>/crx-quickstart/install/15 AEM ,並備份其內容。

  3. 備份後,請刪除S3 Connector的舊版本及其相依性,方法是刪除 <aem-install>/crx-quickstart/install/15 資料夾,例如:

    • oak-blob-cloud-1.6.1.jar
    • aws-java-sdk-osgi-1.10.76.jar
    note note
    NOTE
    上述檔案名稱僅供說明之用。
  4. 從以下網址下載最新版1.10.x Feature Pack: Adobe存放庫.

  5. 將內容解壓縮至個別資料夾,然後導覽至 jcr_root/libs/system/install/15.

  6. 將jar檔案複製到 <aem-install>/crx-quickstart/install/15在AEM安裝資料夾中。

  7. 啟動AEM並檢查聯結器功能。

您可以使用包含下列詳細選項的組態檔。

S3 Connector組態檔選項 s3-connector-configuration-file-options

NOTE
S3聯結器同時支援IAM使用者驗證和IAM角色驗證。 若要使用IAM角色驗證,請省略 accessKeysecretKey 值。 然後,S3聯結器會預設為 IAM角色 指派給執行個體。
關鍵
說明
預設
必填
accessKey
可存取貯體之IAM使用者的存取金鑰ID。
是,當不使用IAM角色時。
secretKey
可存取貯體的IAM使用者機密存取金鑰。
是,當不使用IAM角色時。
cacheSize
本機快取的大小(位元組)。
64GB
不適用。
connectionTimeout
設定初始建立連線時逾時前的等待時間(毫秒)。
10000
不適用。
maxCachedBinarySize
大小小於或等於此值(位元組)的二進位檔儲存在記憶體快取中。
17408 (17 KB)
不適用。
maxConnections
設定允許的開啟HTTP連線數目上限。
50
不適用。
maxErrorRetry
設定失敗(可重試)要求的重試次數上限。
3
不適用。
minRecordLength
應儲存在資料存放區中的物件大小下限(位元組)。
16384
不適用。
路徑
AEM資料存放區的本機路徑。
crx-quickstart/repository/datastore
不適用。
proxyHost
設定使用者端連線時所使用的選用代理主機。
不適用。
proxyPort
設定使用者端連線所透過的可選Proxy連線埠。
不適用。
s3Bucket
S3儲存貯體的名稱。
s3EndPoint
S3 REST API端點。
不適用。
s3Region
貯體所在的區域。 檢視此 頁面 以取得更多詳細資料。
AWS執行個體執行所在的區域。
不適用。
socketTimeout
設定在連線逾時並關閉之前,透過已建立且開啟的連線傳輸資料所需的等待時間(毫秒)。
50000
不適用。
stagingPurgeInterval
從暫存快取中清除已完成的上傳的間隔(秒)。
300
不適用。
stagingRetryInterval
重試失敗的上傳間隔(以秒為單位)。
600
不適用。
stagingSplitPercentage
的百分比 cacheSize 用於中繼非同步上傳。
10
不適用。
uploadThreads
用於非同步上傳的上傳執行緒數量。
10
不適用。
writeThreads
透過S3 Transfer Manager寫入時使用的並行執行緒數目。
10
不適用。

DataStore快取 data-store-caching

NOTE
的DataStore實作 S3DataStoreCachingFileDataStoreAzureDataStore 支援本機檔案系統快取。 此 CachingFileDataStore 當DataStore位於NFS (網路檔案系統)上時,實作很有用。

從舊的快取實作(Oak 1.6以前版本)升級時,本機檔案系統快取目錄的結構不同。 在舊的快取結構中,下載的檔案和上傳的檔案都直接放在快取路徑下。 新結構會將下載和上傳分開,並將它們儲存在名為的兩個目錄中 uploaddownload 快取路徑下。 升級程式應該要流暢無礙,任何擱置的上傳都應排程進行上傳,且任何先前下載在快取中的檔案都會在初始化時放入快取中。

您也可以使用,離線升級快取 datastorecacheupgrade oak-run的命令。 如需有關如何執行指令的詳細資訊,請核取 讀我檔案 用於oak-run模組。

快取具有大小限制,可使用cacheSize引數加以設定。

下載 downloads

從DataStore存取要求的檔案/blob之前,會先檢查本機快取是否有記錄。 當快取超過設定的限制時(請參閱 cacheSize 引數),然後將檔案新增至快取時,系統會逐出部分檔案以回收空間。

非同步上傳 async-upload

快取支援非同步上傳至DataStore。 檔案會存放在本機的快取中(在檔案系統上),且會開始進行非同步工作來上傳檔案。 非同步上傳的數目受限於分段快取的大小。 使用設定暫存快取的大小 stagingSplitPercentage 引數。 此引數會定義用於暫存快取的快取大小百分比。 此外,可下載的快取百分比計算如下 (100 - stagingSplitPercentage) *cacheSize.

非同步上傳是多執行緒,且使用設定執行緒數量。 uploadThreads 引數。

上傳完成後,檔案會移至主要下載快取。 當暫存快取大小超過其限制時,檔案會同步上傳至DataStore,直到前一個非同步上傳完成且暫存快取中再次有可用空間為止。 上傳的檔案會透過週期性工作從臨時區域移除,其間隔由設定 stagingPurgeInterval 引數。

失敗的上傳(例如,由於網路中斷)會置於重試佇列並定期重試。 重試間隔是透過使用 stagingRetryInterval parameter.

使用Amazon S3設定無二進位檔復寫 configuring-binaryless-replication-with-amazon-s

若要使用S3設定無二進位式複製,必須執行下列步驟:

  1. 安裝作者和發佈執行個體,並確定它們已正確啟動。

  2. 透過開啟以下頁面前往復寫代理程式設定: https://localhost:4502/etc/replication/agents.author/publish.html.

  3. 按下 編輯 中的按鈕 設定 區段。

  4. 變更 序列化 輸入選項至 較少二進位.

  5. 新增引數" binaryless= true「(在傳輸uri中)。 在變更後,URI應該看起來類似以下內容:

    https://localhost:4503/bin/receive?sling:authRequestLogin=1&binaryless=true

  6. 重新啟動所有製作和發佈執行個體,讓變更生效。

使用S3和MongoDB建立叢集 creating-a-cluster-using-s-and-mongodb

  1. 使用以下命令解壓縮CQ快速入門:

    java -jar cq-quickstart.jar -unpack

  2. 解壓縮AEM後,在安裝目錄中建立一個資料夾 crx-quickstart/安裝.

  3. 在內建立這兩個檔案 crx-quickstart 資料夾:

    • org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.設定

    • org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.設定

    建立檔案後,視需要新增設定選項。

  4. 依照上述說明,安裝S3資料存放區所需的兩個套件組合。

  5. 確定已安裝MongoDB並且執行個體: mongod 執行中。

  6. 使用以下命令啟動AEM:

    java -Xmx1024m -jar cq-quickstart.jar -r crx3,crx3mongo

  7. 對第二個AEM例項重複步驟1到4。

  8. 啟動第二個AEM執行個體。

設定共用資料存放區 configuring-a-shared-data-store

  1. 首先,在共用資料存放區所需的每個執行個體上建立資料存放區設定檔案:

    • 如果您使用 FileDataStore,建立名為的檔案 org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config 並將其放入 <aem-install>/crx-quickstart/install 資料夾。

    • 如果使用S3作為資料存放區,請建立名為的檔案o rg.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config<aem-install>/crx-quickstart/install 資料夾如上所示。

  2. 修改每個執行個體上的資料存放區組態檔,使其指向相同的資料存放區。 如需詳細資訊,請參閱 本文.

  3. 如果執行個體是從現有的伺服器複製,您必須移除 clusterId 存放庫離線時使用最新oak-run工具執行的新執行個體。 您必須執行的命令為:

    code language-xml
    java -jar oak-run.jar resetclusterid < repository path | Mongo URI >
    
    note note
    NOTE
    如果已設定區段節點存放區,則必須指定存放庫路徑。 依預設,路徑為 <aem-install-folder>/crx-quickstart/repository/segmentstore. 如果已設定Document節點存放區,您可以使用 Mongo連線字串URI.
    note note
    NOTE
    Oak-run工具可從以下位置下載:
    https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run/
    您必須根據您在AEM安裝中使用的Oak版本,使用不同版本的工具。 在使用工具之前,請檢視以下版本需求清單:
    code language-none
    * 針對Oak版本 **1.2.x** 使用Oak-run **1.2.12或更新版本**
    * 針對Oak版本 **比上述更新**,使用與AEM安裝的Oak核心相符的Oak-run版本。
    
  4. 最後,驗證設定。 若要驗證,請尋找由共用該檔案的每個存放庫新增到資料存放區的唯一檔案。 檔案的格式為 repository-[UUID],其中UUID是每個個別存放庫的唯一識別碼。

    因此,正確的設定應具有與共用資料存放區的存放庫相同數目的唯一檔案。

    根據資料存放區,檔案的儲存方式不同:

    • 對於 FileDataStore 這些檔案會在資料存放區資料夾的根路徑下建立。
    • 對於 S3DataStore 這些檔案會在已設定的S3儲存貯體中建立,位於 META 資料夾。

Azure 資料存放區 azure-data-store

可以將AEM設定為將資料儲存在Microsoft®的Azure儲存服務。 它會使用 org.apache.jackrabbit.oak.plugins.blob.datastore.AzureDataStore.config 設定的PID。

若要啟用Azure資料存放區功能,必須下載並安裝包含Azure Connector的功能套件。 前往 Adobe存放庫 並從feature pack 1.6.x版(例如com.adobe.granite.oak.azureblobconnector-1.6.3.zip)下載最新版本。

NOTE
搭配TarMK使用AEM時,二進位檔案預設會儲存在FileDataStore中。 AEM若要搭配Azure DataStore使用TarMK,您必須使用 crx3tar-nofds 執行模式,例如:
java -jar <aem-jar-file>.jar -r crx3tar-nofds

下載後,您可以依照以下步驟安裝和設定Azure聯結器:

  1. 將Feature Pack zip檔案的內容解壓縮至暫存資料夾。

  2. 移至暫存資料夾,並複製其內容 jcr_root/libs/system/install<aem-install>crx-quickstart/install 資料夾。

  3. 如果AEM已設定為搭配Tar或MongoDB儲存體使用,請從移除任何現有的設定檔 /crx-quickstart/install 資料夾。 必須移除的檔案包括:

    ForMongoMK:

    org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config

    對於TarMK:

    org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config

  4. 返回功能套件已擷取的暫存位置,並複製其內容 jcr_root/libs/system/config<aem-install>/crx-quickstart/install 資料夾。

  5. 編輯組態檔並新增安裝程式所需的組態選項。

  6. 啟動AEM。

您可以搭配下列選項使用組態檔:

  • azureSas=」:在聯結器的1.6.3版本中,新增了Azure共用存取簽章(SAS)支援。 如果組態檔中同時存在SAS和儲存認證,則SAS具有優先權。 如需SAS的詳細資訊,請參閱 正式檔案. 請確定'='字元已逸出,如'='。

  • azureBlobEndpoint=": Azure Blob端點。 例如, https://<storage-account>.blob.core.windows.net.

  • accessKey=":儲存體帳戶名稱。 如需Microsoft® Azure驗證憑證的詳細資訊,請參閱 正式檔案.

  • secretKey=":儲存體存取金鑰。 請確定'='字元已逸出,如'='。

  • container=": Microsoft® Azure Blob儲存容器名稱。 容器是一組Blob。 如需其他詳細資訊,請參閱 正式檔案.

  • maxConnections=":每個作業同時發出的要求數目。 預設值為 1。

  • maxErrorRetry="":每個請求的重試次數。 預設值為 3。

  • socketTimeout=": 預設值為5分鐘。

除了上述設定外,您也可以設定下列設定:

  • path:資料存放區的路徑。 預設值為 <aem-install>/repository/datastore.
  • RecordLength:應該儲存在資料存放區中的物件大小下限。 預設值為16 KB。
  • maxCachedBinarySize:大小小於或等於此大小的二進位檔儲存在記憶體快取中。 大小以位元組為單位。 預設值為17408 (17 KB)。
  • cacheSize:快取的大小。 此值是以位元組為單位指定的。 預設值為64 GB。
  • 機密:僅在使用無二進位檔復寫進行共用資料存放區設定時使用。
  • stagingSplitPercentage:設定為用於中繼非同步上傳的快取大小百分比。 預設值為 10。
  • uploadThreads:用於非同步上傳的上傳執行緒數量。 預設值為 10。
  • stagingPurgeInterval:從暫存快取中清除已完成上載的間隔(秒)。 預設值為300秒(5分鐘)。
  • stagingRetryInterval:失敗上傳的重試間隔(秒)。 預設值為600秒(10分鐘)。
NOTE
所有設定都應放在引號之間,例如:
accessKey="ASDASDERFAERAER"
secretKey="28932hfjlkwdo8fufsdfas\=\="

資料存放區記憶體回收 data-store-garbage-collection

資料存放區廢棄專案收集程式可用來移除資料存放區中所有未使用的檔案,進而在程式中釋放寶貴的磁碟空間。

您可以透過以下方式執行資料存放區記憶體回收:

  1. 前往位於的JMX控制檯 https://<serveraddress:port>/system/console/jmx

  2. 正在搜尋 RepositoryManagement。 找到「存放庫管理員MBean」後,按一下它即可顯示可用的選項。

  3. 捲動至頁面結尾,然後按一下 startDataStoreGC(布林值markOnly) 連結。

  4. 在下列對話方塊中,輸入 false 針對 markOnly 引數,然後按一下 叫用

    chlimage_1-9

    note note
    NOTE
    markOnly 參數列示記憶體回收的掃描階段是否執行。

共用資料存放區的資料存放區廢棄專案收集 data-store-garbage-collection-for-a-shared-data-store

NOTE
在叢集或共用資料存放區中執行記憶體回收時,設定(使用Mongo或Segment Tar)記錄可能會顯示無法刪除某些blob ID的警告。 在先前的記憶體回收專案中刪除的Blob ID會再次被其他沒有ID刪除相關資訊的叢集或共用節點錯誤參考。 因此,執行記憶體回收時,會在嘗試刪除上次執行中已刪除的ID時記錄警告。 此行為不會影響效能或功能。
NOTE
如果您使用共用資料存放區設定,且資料存放區廢棄專案收集已停用,執行Lucene二進位清理工作可能會突然增加使用的磁碟空間。 請考慮執行下列動作,在所有作者和發佈執行個體上停用BlobTracker:
  1. 停止AEM執行個體。
  2. 新增 blobTrackSnapshotIntervalInSecs=L"0" 中的引數 crx-quickstart/install/org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config 檔案。 此引數需要Oak 1.12.0、1.10.2或更新版本。
  3. 重新啟動AEM執行個體。

使用較新版本的AEM,資料存放區記憶體回收也可以在多個存放庫共用的資料存放區上執行。 若要在共用資料存放區上執行資料存放區記憶體回收,請執行下列步驟:

  1. 請確定所有共用資料存放區的存放庫執行個體上,針對資料存放區廢棄專案收集設定的所有維護任務都已停用。

  2. 執行中所述的步驟 二進位記憶體回收 單獨開啟 全部 共用資料存放區的存放庫執行個體。 不過,請務必輸入 true 針對 markOnly 按一下叫用按鈕之前的引數:

    chlimage_1-10

  3. 在所有執行個體上完成上述程式後,從再次執行資料存放區記憶體回收 任何 執行個體的:

    1. 前往JMX主控台,然後選取「儲存區域管理員Mbean」。
    2. 按一下 按一下startDataStoreGC(boolean markOnly) 連結。
    3. 在下列對話方塊中,輸入 false 針對 markOnly 再次輸入引數。

    所有找到的檔案會使用之前使用的標籤階段進行整理,並從資料存放區中刪除未使用的其餘檔案。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2