在AEM 6中設定節點存放區和資料存放區 configuring-node-stores-and-data-stores-in-aem
簡介 introduction
在Adobe Experience Manager (AEM)中,二進位資料可與內容節點分開儲存。 二進位資料儲存在資料存放區中,而內容節點儲存在節點存放區中。
資料存放區和節點存放區都可以使用OSGi設定來設定。 每個OSGi設定都是使用持續性識別碼(PID)來參考。
設定步驟 configuration-steps
若要同時設定節點存放區和資料存放區,請執行下列步驟:
-
將AEM quickstart JAR檔案複製到其安裝目錄。
-
建立資料夾
crx-quickstart/install
位於安裝目錄中。 -
首先,透過以您要在中使用的節點存放區選項名稱來建立組態檔,以設定節點存放區
crx-quickstart/install
目錄。例如,檔案節點存放區(AEM MongoMK實作的基礎)會使用檔案
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
. -
編輯檔案,並設定組態選項。
-
以您要使用之資料存放區的PID建立設定檔。 編輯檔案以設定組態選項。
note note NOTE 另請參閱 節點存放區設定 和 資料存放區設定 以取得組態選項。 -
啟動AEM。
節點存放區設定 node-store-configurations
crx-quickstart/install
資料夾優先。 升級之後,將資料夾內容還原至升級安裝,並修改組態檔的副檔名,從 .cfg 至 .config.區段節點存放區 segment-node-store
區段節點存放區是Adobe在AEM6中實施TarMK的基礎。 它會使用 org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
設定的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備份和還原作業也較慢。
不同資料存放區和設定的詳細資訊如下所述。
檔案資料存放區 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
:儲存在資料存放區的檔案大小下限(位元組)。 系統會內嵌小於此值的二進位內容。
Amazon S3資料存放區 amazon-s-data-store
AEM可設定為將資料儲存在Amazon的Simple Storage Service (S3)中。 它會使用 org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
設定的PID。
若要啟用S3資料存放區功能,必須下載及安裝包含S3資料存放區聯結器的Feature Pack。 前往 Adobe存放庫 並從feature pack 1.10.x版(例如com.adobe.granite.oak.s3connector-1.10.0.zip)下載最新版本。 AEM此外,您必須下載並安裝列於 AEM 6.5發行說明 頁面。
FileDataStore
. AEM若要搭配S3資料存放區使用TarMK,您必須使用 crx3tar-nofds
執行模式,例如:java -jar <aem-jar-file>.jar -r crx3tar-nofds
下載後,您可以依照以下步驟安裝和設定S3 Connector:
-
將Feature Pack zip檔案的內容解壓縮至暫存資料夾。
-
移至暫存資料夾,並導覽至下列位置:
code language-xml jcr_root/libs/system/install
將以上位置的所有內容複製到
<aem-install>/crx-quickstart/install.
-
如果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
-
回到已擷取功能套件的暫存位置,並複製下列資料夾的內容:
jcr_root/libs/system/config
至
<aem-install>/crx-quickstart/install
請確定您僅複製目前組態所需的組態檔。 對於專用資料存放區和共用資料存放區設定,
org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
檔案。note note NOTE 在叢集設定中,請逐一在叢集的所有節點上執行上述步驟。 此外,請務必對所有節點使用相同的S3設定。 -
編輯檔案並新增安裝程式所需的設定選項。
-
啟動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),請遵循下列步驟:
-
停止AEM執行個體。
-
瀏覽至
<aem-install>/crx-quickstart/install/15
AEM ,並備份其內容。 -
備份後,請刪除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 上述檔案名稱僅供說明之用。 -
從以下網址下載最新版1.10.x Feature Pack: Adobe存放庫.
-
將內容解壓縮至個別資料夾,然後導覽至
jcr_root/libs/system/install/15
. -
將jar檔案複製到 <aem-install>/crx-quickstart/install/15在AEM安裝資料夾中。
-
啟動AEM並檢查聯結器功能。
您可以使用包含下列詳細選項的組態檔。
S3 Connector組態檔選項 s3-connector-configuration-file-options
crx-quickstart/repository/datastore
cacheSize
用於中繼非同步上傳。DataStore快取 data-store-caching
S3DataStore
, CachingFileDataStore
和 AzureDataStore
支援本機檔案系統快取。 此 CachingFileDataStore
當DataStore位於NFS (網路檔案系統)上時,實作很有用。從舊的快取實作(Oak 1.6以前版本)升級時,本機檔案系統快取目錄的結構不同。 在舊的快取結構中,下載的檔案和上傳的檔案都直接放在快取路徑下。 新結構會將下載和上傳分開,並將它們儲存在名為的兩個目錄中 upload
和 download
快取路徑下。 升級程式應該要流暢無礙,任何擱置的上傳都應排程進行上傳,且任何先前下載在快取中的檔案都會在初始化時放入快取中。
您也可以使用,離線升級快取 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設定無二進位式複製,必須執行下列步驟:
-
安裝作者和發佈執行個體,並確定它們已正確啟動。
-
透過開啟以下頁面前往復寫代理程式設定: https://localhost:4502/etc/replication/agents.author/publish.html.
-
按下 編輯 中的按鈕 設定 區段。
-
變更 序列化 輸入選項至 較少二進位.
-
新增引數"
binaryless
=true
「(在傳輸uri中)。 在變更後,URI應該看起來類似以下內容:https://localhost:4503/bin/receive?sling:authRequestLogin=1&binaryless=true
-
重新啟動所有製作和發佈執行個體,讓變更生效。
使用S3和MongoDB建立叢集 creating-a-cluster-using-s-and-mongodb
-
使用以下命令解壓縮CQ快速入門:
java -jar cq-quickstart.jar -unpack
-
解壓縮AEM後,在安裝目錄中建立一個資料夾 crx-quickstart/安裝.
-
在內建立這兩個檔案
crx-quickstart
資料夾:-
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.設定
-
org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.設定
建立檔案後,視需要新增設定選項。
-
-
依照上述說明,安裝S3資料存放區所需的兩個套件組合。
-
確定已安裝MongoDB並且執行個體:
mongod
執行中。 -
使用以下命令啟動AEM:
java -Xmx1024m -jar cq-quickstart.jar -r crx3,crx3mongo
-
對第二個AEM例項重複步驟1到4。
-
啟動第二個AEM執行個體。
設定共用資料存放區 configuring-a-shared-data-store
-
首先,在共用資料存放區所需的每個執行個體上建立資料存放區設定檔案:
-
如果您使用
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
資料夾如上所示。
-
-
修改每個執行個體上的資料存放區組態檔,使其指向相同的資料存放區。 如需詳細資訊,請參閱 本文.
-
如果執行個體是從現有的伺服器複製,您必須移除
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版本。
-
最後,驗證設定。 若要驗證,請尋找由共用該檔案的每個存放庫新增到資料存放區的唯一檔案。 檔案的格式為
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)下載最新版本。
crx3tar-nofds
執行模式,例如:java -jar <aem-jar-file>.jar -r crx3tar-nofds
下載後,您可以依照以下步驟安裝和設定Azure聯結器:
-
將Feature Pack 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=":儲存體帳戶名稱。 如需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分鐘)。
accessKey="ASDASDERFAERAER"
secretKey="28932hfjlkwdo8fufsdfas\=\="
資料存放區記憶體回收 data-store-garbage-collection
資料存放區廢棄專案收集程式可用來移除資料存放區中所有未使用的檔案,進而在程式中釋放寶貴的磁碟空間。
您可以透過以下方式執行資料存放區記憶體回收:
-
前往位於的JMX控制檯 https://<serveraddress:port>/system/console/jmx
-
正在搜尋 RepositoryManagement。 找到「存放庫管理員MBean」後,按一下它即可顯示可用的選項。
-
捲動至頁面結尾,然後按一下 startDataStoreGC(布林值markOnly) 連結。
-
在下列對話方塊中,輸入
false
針對markOnly
引數,然後按一下 叫用:note note NOTE 此 markOnly
參數列示記憶體回收的掃描階段是否執行。
共用資料存放區的資料存放區廢棄專案收集 data-store-garbage-collection-for-a-shared-data-store
- 停止AEM執行個體。
- 新增
blobTrackSnapshotIntervalInSecs=L"0"
中的引數crx-quickstart/install/org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
檔案。 此引數需要Oak 1.12.0、1.10.2或更新版本。 - 重新啟動AEM執行個體。
使用較新版本的AEM,資料存放區記憶體回收也可以在多個存放庫共用的資料存放區上執行。 若要在共用資料存放區上執行資料存放區記憶體回收,請執行下列步驟:
-
請確定所有共用資料存放區的存放庫執行個體上,針對資料存放區廢棄專案收集設定的所有維護任務都已停用。
-
執行中所述的步驟 二進位記憶體回收 單獨開啟 全部 共用資料存放區的存放庫執行個體。 不過,請務必輸入
true
針對markOnly
按一下叫用按鈕之前的引數: -
在所有執行個體上完成上述程式後,從再次執行資料存放區記憶體回收 任何 執行個體的:
- 前往JMX主控台,然後選取「儲存區域管理員Mbean」。
- 按一下 按一下startDataStoreGC(boolean markOnly) 連結。
- 在下列對話方塊中,輸入
false
針對markOnly
再次輸入引數。
所有找到的檔案會使用之前使用的標籤階段進行整理,並從資料存放區中刪除未使用的其餘檔案。