我尝试在LXC容器环境中离线部署memsql 5.5。 memsql-ops的安装成功。当我运行以下命令添加memsql脱机媒体“memsqlbin_amd64.tar.gz”时,命令失败,并显示有关“空间不足”的错误消息。
以下是完整的错误消息:
# 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可以看到主机端或容器内的磁盘空间都不是问题。
# 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中。我很想知道如何实现这一目标。
答案 0 :(得分:0)
我假设cgroup_root
是您的LXC容器的装载 - 看起来您只有10M可用于该容器。
MemSQL Ops在主机系统上至少需要50M的可用空间,如果没有,它将进入休眠状态并避免对系统做任何事情。这显然不是您想要的,但对于生产工作负载接近磁盘容量的系统来说,它是一种安全措施。
您需要为LXC容器分配更多空间。请记住,MemSQL Ops也会将MemSQL安装到此文件系统上,因此您需要为二进制文件和共享库以及MemSQL中的数据分配足够的空间。