Config LMDB 擴容

故障原因

Config LMDB 用於儲存 OpenResty Edge Node 的配置資訊。 當配置所需的空間大於所指定的大小(當前預設大小為 4 GB)時無法程序配置同步。

如果以下的錯誤日誌出現在 /usr/local/oredge-node/logs/error.log檔案中,它表示需求的 config LMDB 的大小已經超過了當前配置的大小。

2022/01/20 15:06:48 [emerg] 3162826#3162826: unable to commit: MDB_MAP_FULL: Environment mapsize limit reached
2022/01/20 15:06:48 [error] 3162826#3162826: *1041049 [lua] sync.lua:417: apply delta failed: failed to set requested key-values, context: ngx.timer
2022/01/20 15:06:48 [error] 3162826#3162826: *1041049 [lua] sync.lua:501: unable to synchronize with edge-admin err:failed to set requested key-values, context: ngx.timer

故障影響

無法進行配置同步,需要對 LMDB 進行擴容。

請注意:LMDB 的空間只能擴大,不能縮小。

新版本擴容步驟

此擴容指令碼在 OpenResty Edge 25.6.15-1 中首次引入。

執行指令碼 expand-config-lmdb.sh 執行擴容。指令碼支援指定擴容後的檔案大小,單位為兆。

比如,將大小調整為 8192m(8GB)。

sudo /usr/local/oredge-node/bin/expand-config-lmdb.sh 8192

擴容前,會將原來的舊的 LMDB 檔案備份在 /usr/local/oredge-node/data/config.lmdb.backup 目錄下。

舊版本擴容步驟

如果 OpenResty Edge 版本低於 25.6.15-1 版本,需要手動修改配置檔案進行擴容。

  • 修改 nginx.conf 配置:/usr/local/oredge-node/conf/nginx.conf

    lua_config_map_size     4096m;
    

    修改大小為需要的值,如 8192m(8GB)。

  • 修改 config.ini 配置:/usr/local/oredge-node/conf/config.ini

    [config]
    lmdb_size = 4096m
    

    修改大小為需要的值,如 8192m(8GB)。

  • 重啟 OpenResty Edge Node

    systemctl start upgrade-oredge-node
    
  • 檢查配置是否生效:

    ls -lh /usr/local/oredge-node/data/config.lmdb
    

    看到大小變為配置的大小(如 8GB),則說明配置生效。