【问题标题】:SQL Server docker container with NFS mount as volume mapping使用 NFS 挂载作为卷映射的 SQL Server docker 容器
【发布时间】:2017-08-18 10:45:19
【问题描述】:

我正在尝试使用搁浅的 microsoft/mssql-server-linux:latest docker 映像在 ubuntu 上将 SQL Server 作为 docker 容器运行。对于数据持久性,我正在使用 docker run 命令中的 -v 选项将卷从我的主机(具有 ext4 文件系统)映射到容器,如下所示

docker run -it -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=######' -p 1433:1433 
               -v /var/opt/database:/var/opt/mssql/data microsoft/mssql-server-linux

容器运行良好,我能够连接到数据库。但我不想在我的主机上存储数据,因为数据库的规模不断扩大,而且出于群体原因。现在我想在其他机器上运行 NFS 服务器并将 nfs 目录挂载到我的 docker 主机上,然后在卷映射上使用该 nfs 目录,现在卷映射是

-v /var/nfs/database:/var/opt/mssql/data 

/var/nfs/database 是 docker 主机上的 nfs 挂载目录。现在,当我启动容器时,出现以下错误

2017-08-18 10:15:53.98 spid5s FCB::Open failed: Could not open file /var/opt/mssql/data/master.mdf for file number 1. OS error: 87(参数不正确.)。 2017-08-18 10:15:53.98 spid5s 错误:5120,严重性:16,状态:101。 2017-08-18 10:15:53.98 spid5s 无法打开物理文件“/var/opt/mssql/data/master.mdf”。操作系统错误87:“87(参数不正确。)”。 2017-08-18 10:15:54.13 spid5s 错误:17204,严重性:16,状态:1。 2017-08-18 10:15:54.13 spid5s FCB::Open failed: 无法为文件号 2 打开文件 /var/opt/mssql/data/mastlog.ldf。操作系统错误:87(参数不正确。)。 2017-08-18 10:15:54.13 spid5s 错误:5120,严重性:16,状态:101。 2017-08-18 10:15:54.13 spid5s 无法打开物理文件“/var/opt/mssql/data/mastlog.ldf”。操作系统错误87:“87(参数不正确。)”。

我已授予数据库文件的所有权限。下面是nfs mount sn -p

sharedstorageIp:/var/nfs nfs4 443G 47G 375G 11% /var/nfs

【问题讨论】:

    标签: sql-server docker


    【解决方案1】:

    release notes 解释说你不能这样做:

    不支持在 NFS 服务器上托管数据库文件 释放。这包括使用 NFS 进行共享磁盘故障转移集群 以及非集群实例上的数据库。我们正在努力 在即将发布的版本中启用 NFS 服务器支持。

    考虑到数据库对可靠性的要求,在网络路径上托管数据库文件并非易事。在协议版本 2.2 之前,无法在 SMB 共享上托管文件。

    【讨论】:

    • 感谢您的回答。这是有道理的。但是当我使用 ctp2-0 标签拉图像时,我可以使用 nfs mount。可以使用该图像。当我使用 ctp2-1 时,这再次失败,这让我担心发行版的稳定性。除了 ctp2-0 之外的所有版本都失败了。
    • @Anand:几乎可以肯定这样做是不行的,除非你真的不关心可靠性。在 CTP 2.0 中,可能有一些文件系统调用只是为了让事情正常工作而被删除,在以后的版本中正确报告“未实现”。当然,从技术上讲,Linux 上的 SQL Server 还没有稳定的版本,所以如果你只是想试验一下,那就继续吧。它不会改变该设置不受支持且您不应将数据委托给它的事实。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2017-08-14
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多