离线 memsql 5.5 安装失败,出现 "out of space" 错误
Offline memsql 5.5 install failed with "out of space" error
我尝试在LXC容器环境下离线部署memsql 5.5。
memsql-ops 安装成功。当我 运行 按照命令添加 memsql 离线媒体 "memsqlbin_amd64.tar.gz" 时,该命令失败并显示有关 "out of space" 的错误消息。
这是完整的错误信息:
# memsql-ops file-add -t memsql memsqlbin_amd64.tar.gz
Traceback (most recent call last):
File "/usr/local/updated-openssl/lib/python3.4/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
File "/memsql_platform/bin/memsql-ops", line 18, in <module>
File "/memsql_platform/memsql_platform/agent/cli/client.py", line 210, in parse
File "/memsql_platform/memsql_platform/agent/cli/command_file_add.py", line 27, in run
File "/memsql_platform/memsql_platform/agent/cli/file_add_mixin.py", line 61, in add_file
File "/memsql_platform/memsql_platform/network/api_client.py", line 126, in call
File "/memsql_platform/memsql_platform/network/api_client.py", line 92, in _call
memsql_platform.api.exceptions.DeviceOutOfDisk: The API is currently disabled because the disk that MemSQL Ops is installed on is out of space.
运行 df -h 可以看到磁盘 space 从主机端或容器内部都不是问题。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc 559G 3.2G 554G 1% /
none 492K 0 492K 0% /dev
/dev/sdc 559G 3.2G 554G 1% /software
cgroup_root 10M 0 10M 0% /sys/fs/cgroup
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 8.1M 63G 1% /run
tmpfs 13G 0 13G 0% /run/user/0
我怀疑 LXC 容器可能会从主机端继承一些系统目录并阻止应用程序写入这些目录。但是在互联网上搜索让我相信 LXC 容器没有这样的限制。
在 Google 上搜索相同的错误消息没有任何结果。我希望这个问题可以解决,但我也想知道为什么这会在容器中发生。据我所知,memsql已经正式部署到docker。我很想知道这是如何实现的。
我假设 cgroup_root
是您的 LXC 容器的装载 - 看起来您只有 10M 可用于该容器。
MemSQL Ops 要求主机系统至少有 50M 的可用空间 space,如果没有,它将进入休眠状态并避免对系统进行任何操作。这显然不是您想要的,但它是生产工作负载接近磁盘容量的系统的保障。
您需要为 LXC 容器分配更多 space。请记住,MemSQL Ops 也会将 MemSQL 安装到此文件系统上,因此您需要为二进制和共享库以及 MemSQL 中的数据分配足够的 space。
我尝试在LXC容器环境下离线部署memsql 5.5。 memsql-ops 安装成功。当我 运行 按照命令添加 memsql 离线媒体 "memsqlbin_amd64.tar.gz" 时,该命令失败并显示有关 "out of space" 的错误消息。
这是完整的错误信息:
# memsql-ops file-add -t memsql memsqlbin_amd64.tar.gz
Traceback (most recent call last):
File "/usr/local/updated-openssl/lib/python3.4/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
File "/memsql_platform/bin/memsql-ops", line 18, in <module>
File "/memsql_platform/memsql_platform/agent/cli/client.py", line 210, in parse
File "/memsql_platform/memsql_platform/agent/cli/command_file_add.py", line 27, in run
File "/memsql_platform/memsql_platform/agent/cli/file_add_mixin.py", line 61, in add_file
File "/memsql_platform/memsql_platform/network/api_client.py", line 126, in call
File "/memsql_platform/memsql_platform/network/api_client.py", line 92, in _call
memsql_platform.api.exceptions.DeviceOutOfDisk: The API is currently disabled because the disk that MemSQL Ops is installed on is out of space.
运行 df -h 可以看到磁盘 space 从主机端或容器内部都不是问题。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc 559G 3.2G 554G 1% /
none 492K 0 492K 0% /dev
/dev/sdc 559G 3.2G 554G 1% /software
cgroup_root 10M 0 10M 0% /sys/fs/cgroup
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 8.1M 63G 1% /run
tmpfs 13G 0 13G 0% /run/user/0
我怀疑 LXC 容器可能会从主机端继承一些系统目录并阻止应用程序写入这些目录。但是在互联网上搜索让我相信 LXC 容器没有这样的限制。
在 Google 上搜索相同的错误消息没有任何结果。我希望这个问题可以解决,但我也想知道为什么这会在容器中发生。据我所知,memsql已经正式部署到docker。我很想知道这是如何实现的。
我假设 cgroup_root
是您的 LXC 容器的装载 - 看起来您只有 10M 可用于该容器。
MemSQL Ops 要求主机系统至少有 50M 的可用空间 space,如果没有,它将进入休眠状态并避免对系统进行任何操作。这显然不是您想要的,但它是生产工作负载接近磁盘容量的系统的保障。
您需要为 LXC 容器分配更多 space。请记住,MemSQL Ops 也会将 MemSQL 安装到此文件系统上,因此您需要为二进制和共享库以及 MemSQL 中的数据分配足够的 space。