我嘗試LXC容器環境memsql 5.5離線部署。 安裝memsql-ops成功。當我運行以下命令添加memsql脫機媒體「memsqlbin_amd64.tar.gz」時,該命令失敗,並顯示有關「空間不足」的錯誤消息。離線memsql 5.5安裝失敗「的空間不足」的錯誤
以下是完整的錯誤消息:
# 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容器沒有這種限制。
搜索相同的錯誤信息在谷歌給我什麼。我希望這個問題可以解決,但我也想知道爲什麼這可能發生在容器中。據我所知,memsql已正式部署到docker中。我很想知道如何實現這一點。
我不太知道「cgroup_root」這裏的入口。 lxc手冊頁並沒有說明。但是「df -h /」返回「/ dev/sdc 559G 3.2G 554G 1%/」。這讓我認爲容器根位於/ dev/sdc中,即容器的實際位置。 – robert
MemSQL Ops檢查數據目錄所在的磁盤(默認情況下爲/ var/lib/memsql-ops)以及您的tmpdir它使用'psutil.disk_usage([OPS_DATA_DIR,tmpdir])檢查磁盤使用情況'這最終呼籲:https://github.com/giampaolo/psutil/blob/master/psutil/_psposix.py#L123 – memsqlite
雖然這個答案不直接解決這個問題。但它激勵我嘗試不同的後備存儲(LXC容器存儲),如** ZFS **和**目錄**,它們可以在容器中成功部署MemSQL。所以我喜歡對待這個問題的解決方案。但是,爲了解決問題的根源,我認爲最好讓MemSQL用'df/var'來檢查可用空間。 – robert