1

我已经设置了一个有 2 个节点的 Elasticsearch 集群。我现在正在尝试实施快照恢复过程。但我得到这个“只读文件系统”错误。由于此错误,我无法创建快照。

我在第一个节点中创建了一个具有 777 权限的目录。使用 NFS 并与第二个节点共享目录。我能够导航到第二个节点终端中的共享目录。我还在两个节点上设置了 path.repo 以指向该共享目录 [/opt/backups]。但仍然得到“只读”。我不明白为什么。

我请求创建快照:

PUT host.com/elsearch/_snapshot/backup_1
{
    "type": "fs",
    "settings": {
        "location": "/opt/backup",
        "compress": true
    }
}

这是错误:

{
    "error": {
        "root_cause": [
            {
                "type": "repository_verification_exception",
                "reason": "[backup_1] [[jhsdgfjgeufh, 'RemoteTransportException[[es-node-2][26.19.35.46:9300][internal:admin/repository/verify]]; nested: ElasticsearchException[failed to create blob container]; nested: FileSystemException[/opt/backups/tests-Dvl-pSO2Cg: Read-only file system];']]"
            }
        ],
        "type": "repository_verification_exception",
        "reason": "[backup_1] [[jhsdgfjgeufh, 'RemoteTransportException[[es-node-2][26.19.35.46:9300][internal:admin/repository/verify]]; nested: ElasticsearchException[failed to create blob container]; nested: FileSystemException[/opt/backups/tests-Dvl-pSO2Cg: Read-only file system];']]"
    },
    "status": 500
}

在主服务器上创建了 tests-Dvl-pSO2Cg 目录。

我也尝试过,因为我在一些类似的问题中看到了这个解决方案:

chown -R elasticsearch:elasticsearch $BACKUP_DIR
4

1 回答 1

1

我能够通过执行以下命令来解决问题:

setfacl -R -d -m u::rwx $BACKUP_DIR
setfacl -R -d -m g::rwx $BACKUP_DIR
setfacl -R -d -m o::rwx $BACKUP_DIR

基本上,在我的 $BACKUP_DIR 中创建的目录(当我调用 PUT '/_snapshot/...' 时)没有获得 777 权限,尽管我使用 -R 给了 chmod 777。上面的命令将处理该问题。

于 2019-08-26T08:56:20.633 回答