Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aufsマウントできない #31

Open
masa0612 opened this issue Aug 27, 2015 · 29 comments
Open

aufsマウントできない #31

masa0612 opened this issue Aug 27, 2015 · 29 comments

Comments

@masa0612
Copy link

creator.pyの中にある以下の処理が

base.clone("Any name", flags=4, bdevtype='aufs')

以下のように失敗する。
環境はAzure上に構築したUbuntu LTS 14.04

lxc_container: bdev.c: aufs_mount: 2613 No such device - aufs: error mounting /var/lib/lxc/env_base/rootfs onto /usr/lib/x86_64-linux-gnu/lxc options br=/var/lib/lxc/tmp1/delta0=rw:/var/lib/lxc/env_base/rootfs=ro,xino=/run/lxc/aufs.xino
False

bdevtype='aufs'引数を削除すると通った。
釈然としない…

@masa0612
Copy link
Author

ローカルの環境だと特に今までこのようなエラーは起こらなかった。
このあたりに疎いので、aufs指定する理由が思いつく人は教えてください。
特に理由がなければ、このaufs指定を削除してしまったほうがいいと思います。

@kz0817
Copy link
Member

kz0817 commented Aug 30, 2015

たしか、(1) baseのOSイメージ、(2)nodeのタイプごとに追加イメージ、(3)各node用のストレージの3つをaufsで重ね合わせることで、使用Disk容量の削減と、デプロイ時間の短縮をおこなっていました。このbase.clone()がどのような処理をしているか記憶していませんが、安易にaufsの指定を削除するのは、上記の構造を破壊する可能性があります。

@masa0612
Copy link
Author

なるほど。
指定することによって得られる効果は2つ(使用Disk容量の削減、デプロイ時間の短縮)ということですね。
作成されたコンテナ自体には影響が出ないという認識でよいでしょうか。

今後同様のエラーが出た場合は、私の解決手段のとおり、使用者自身がスクリプトから

, bdevtype='aufs'

の部分を削除し、実行するという形を取ってもらうことにしましょう。
問題なければクローズしても良いですか?

@kz0817
Copy link
Member

kz0817 commented Aug 31, 2015

作成されたコンテナ自体には影響が出ないという認識でよいでしょうか。

それは、このIssueに記載された情報だけでは、不明です。
上記で挙げた(1)(2)(3)のいずれかが欠落していたら、期待通りに動作しないと考えられるからです。なぜ、エラーがなぜが発生したかの根本原因を探らないと、影響があるかないかは言えないですよね。

@kz0817
Copy link
Member

kz0817 commented Aug 31, 2015

エラーがなぜが発生したかの根本原因を探らないと、影響があるかないかは言えないですよね。

もちろん、有限のリソースで開発しているので、今すぐやらないといけないわけではないですし、提示の方法で回避できているように見えるなら、それはひとつのやり方ではありますね。

ただ、理由がわからないまま、クローズするのには違和感があります。

@noriki-nakamura
Copy link
Contributor

たしか、(1) baseのOSイメージ、(2)nodeのタイプごとに追加イメージ、(3)各node用のストレージの3つをaufsで重ね合わせることで、使用Disk容量の削減と、デプロイ時間の短縮をおこなっていました。

大和さんの仰る通りです。
ローカル環境では特に問題は起きていないと言っているので、Azure上でaufsマウントをサポートしていないのではないかなと思いました。

Azure上でaufsマウントができるのかどうか気になるところです。

@kz0817
Copy link
Member

kz0817 commented Aug 31, 2015

Azure上でaufsマウントができるのかどうか気になるところです。

aufsって、H/Wに依存する要素が少ないので、Azureだからダメっていうのも一見不思議です。例えば、deviceファイルの名前等が、想定していたものと、異なっていることによって、エラーが発生しているという可能性を疑っています。

@masa0612
Copy link
Author

#user@host:/tmp$ sudo mount -t aufs -o br:hoge=rw aufs mnt
mount: unknown filesystem type 'aufs'

ドライバが入ってない?
情報が少なすぎて原因わからない…

@cosmo0920
Copy link
Contributor

AUFSはカーネルモジュールだったりするので、

cp /boot/config-`uname -r` .

で、grep -nH -r -e AUFS .してから CONFIG_AUFS_FS=m とか見えませんか?

@cosmo0920
Copy link
Contributor

ちなみに手元のUbuntu 14.04.3 LTSではこんなものが見えます。

% cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
% grep -nH -r -e AUFS .
./config-3.13.0-62-generic:6573:CONFIG_AUFS_FS=m
./config-3.13.0-62-generic:6574:CONFIG_AUFS_BRANCH_MAX_127=y
./config-3.13.0-62-generic:6575:# CONFIG_AUFS_BRANCH_MAX_511 is not set
./config-3.13.0-62-generic:6576:# CONFIG_AUFS_BRANCH_MAX_1023 is not set
./config-3.13.0-62-generic:6577:# CONFIG_AUFS_BRANCH_MAX_32767 is not set
./config-3.13.0-62-generic:6578:CONFIG_AUFS_SBILIST=y
./config-3.13.0-62-generic:6579:# CONFIG_AUFS_HNOTIFY is not set
./config-3.13.0-62-generic:6580:CONFIG_AUFS_EXPORT=y
./config-3.13.0-62-generic:6581:CONFIG_AUFS_INO_T_64=y
./config-3.13.0-62-generic:6582:# CONFIG_AUFS_RDU is not set
./config-3.13.0-62-generic:6583:# CONFIG_AUFS_SP_IATTR is not set
./config-3.13.0-62-generic:6584:# CONFIG_AUFS_SHWH is not set
./config-3.13.0-62-generic:6585:CONFIG_AUFS_BR_RAMFS=y
./config-3.13.0-62-generic:6586:CONFIG_AUFS_BR_FUSE=y
./config-3.13.0-62-generic:6587:CONFIG_AUFS_POLL=y
./config-3.13.0-62-generic:6588:CONFIG_AUFS_BR_HFSPLUS=y
./config-3.13.0-62-generic:6589:CONFIG_AUFS_BDEV_LOOP=y
./config-3.13.0-62-generic:6590:# CONFIG_AUFS_DEBUG is not set

@cosmo0920
Copy link
Contributor

また、CONFIG_AUFS_FS=m となっていた場合は読み込まれていないとAUFSは使用できないです。

% lsmod |grep aufs
aufs                  202783  0 

のようにlsmodにaufsが居ればOK.

@masa0612
Copy link
Author

% cat /etc/lsb-release                                                                                                             
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
% grep -nH -r -e AUFS .                                                                                                            
./config-3.19.0-25-generic:7042:CONFIG_AUFS_FS=m                                                                                                                
./config-3.19.0-25-generic:7043:CONFIG_AUFS_BRANCH_MAX_127=y                                                                                                    
./config-3.19.0-25-generic:7044:# CONFIG_AUFS_BRANCH_MAX_511 is not set                                                                                         
./config-3.19.0-25-generic:7045:# CONFIG_AUFS_BRANCH_MAX_1023 is not set                                                                                        
./config-3.19.0-25-generic:7046:# CONFIG_AUFS_BRANCH_MAX_32767 is not set                                                                                       
./config-3.19.0-25-generic:7047:CONFIG_AUFS_SBILIST=y                                                                                                           
./config-3.19.0-25-generic:7048:# CONFIG_AUFS_HNOTIFY is not set                                                                                                
./config-3.19.0-25-generic:7049:CONFIG_AUFS_EXPORT=y                                                                                                            
./config-3.19.0-25-generic:7050:CONFIG_AUFS_INO_T_64=y                                                                                                          
./config-3.19.0-25-generic:7051:CONFIG_AUFS_XATTR=y                                                                                                             
./config-3.19.0-25-generic:7052:# CONFIG_AUFS_FHSM is not set                                                                                                   
./config-3.19.0-25-generic:7053:# CONFIG_AUFS_RDU is not set                                                                                                    
./config-3.19.0-25-generic:7054:# CONFIG_AUFS_SHWH is not set                                                                                                   
./config-3.19.0-25-generic:7055:# CONFIG_AUFS_BR_RAMFS is not set                                                                                               
./config-3.19.0-25-generic:7056:# CONFIG_AUFS_BR_FUSE is not set                                                                                                
./config-3.19.0-25-generic:7057:# CONFIG_AUFS_BR_HFSPLUS is not set                                                                                             
./config-3.19.0-25-generic:7058:CONFIG_AUFS_BDEV_LOOP=y                                                                                                         
./config-3.19.0-25-generic:7059:# CONFIG_AUFS_DEBUG is not set  

@masa0612
Copy link
Author

のようにlsmodにaufsが居ればOK.

ここがアウトでした。
insmod~~~~

@cosmo0920
Copy link
Contributor

modprobe(8)の出番みたいですね。 http://linuxjm.osdn.jp/html/modutils/man8/modprobe.8.html

sudo modprobe aufs

でaufsカーネルモジュールが正常に読み込まれます?
そうでなければなにか環境がヘンです。

@cosmo0920
Copy link
Contributor

insmodは強制的にカーネルモジュールを読み込めますが、依存関係を考慮しない読み込みになるのでmodprobeを使って下さい。

@masa0612
Copy link
Author

んんんん????

% sudo modprobe aufs
modprobe: FATAL: Module aufs not found.

% :/lib/modules/3.19.0-25-generic$ find | grep aufs
結果なし・・・

@kz0817
Copy link
Member

kz0817 commented Aug 31, 2015

手元のマシンのUbuntu 14.04なら、aufsモジュールが見つかる。

$ modinfo aufs 
filename:       /lib/modules/3.13.0-32-generic/kernel/ubuntu/aufs/aufs.ko
alias:          fs-aufs
version:        3.13-20140303
description:    aufs -- Advanced multi layered unification filesystem
author:         Junjiro R. Okajima 
license:        GPL
srcversion:     F8A3BAB17A4595B4AB06091
depends:        
intree:         Y
vermagic:       3.13.0-32-generic SMP mod_unload modversions 
signer:         Magrathea: Glacier signing key
sig_key:        5E:3C:0F:9C:A6:E3:65:43:53:5F:A2:BB:5B:70:9E:84:F1:6D:A7:C7
sig_hashalgo:   sha512
parm:           brs:use /fs/aufs/si_*/brN (int)

あと、カーネルバージョン3.19って新しすぎない?ホントに素のUbuntu 14.04?
15.04のカーネルバージョンのような。。。

$ cat /proc/version 
Linux version 3.13.0-32-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014

@cosmo0920
Copy link
Contributor

Ubuntu Trusty(14.04)の最初の版をインストールして使い続けているならカーネルは3.13ですが、時期によっては3.16だったり3.19だったりするみたいですね。3.19はVivid(15.04)用のカーネルイメージパッケージに含まれています。

@kz0817
Copy link
Member

kz0817 commented Aug 31, 2015

時期によっては3.16だったり3.19だったりするみたいですね。

なるほど。14.04.03は、3.19みたいですね。

@masa0612
Copy link
Author

3.16も入ってるんですけど、そっちにもaufsのモジュールないですね。
ウーン…

@kz0817
Copy link
Member

kz0817 commented Aug 31, 2015

linux-image-extraを入れてないのでは?

$ dpkg -L linux-image-extra-3.13.0-32-generic | grep aufs
/lib/modules/3.13.0-32-generic/kernel/ubuntu/aufs
/lib/modules/3.13.0-32-generic/kernel/ubuntu/aufs/aufs.ko
$ dpkg -l | grep linux-image
ii  linux-image-3.13.0-32-generic       3.13.0-32.57                         amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-32-generic 3.13.0-32.57                         amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-generic                 3.13.0.32.38                         amd64        Generic Linux kernel image

@cosmo0920
Copy link
Contributor

ソレダ!

http://packages.ubuntu.com/trusty-updates/linux-image-extra-3.19.0-26-generic

trusty-updatesのapt-lineが利用可能なら3.19のaufsも利用可能みたいですよ> @mnakagawa さん

@masa0612
Copy link
Author

👏👏👏👏👏

$ sudo modprobe aufs                                                                                                               
$ sudo mount -t aufs -o br:hoge=rw aufs mnt                                                                                      
$ mount                                                                                                                         
(略)
aufs on /tmp/mnt type aufs (rw,relatime,si=bbffceab2b657b51)

@cosmo0920
Copy link
Contributor

やりました! 💪

https://github.com/project-hatohol/test-environment-manager#how-to-install 👈 へlinux-image-extraをapt-getする手順を追加すればこのIssueは完了、ですかね。

…mountする手順もか。

@noriki-nakamura
Copy link
Contributor

…mountする手順もか。

マウントなどはスクリプト(具体的にはLXCのAPI)が行うので、説明する必要ないかと。
mount 云々に関してはそもそもaufsでマウントできるのかどうか確認したかっただけではないかと思います。

@cosmo0920
Copy link
Contributor

おぉ、なるほどなるほど。

@masa0612
Copy link
Author

mount 云々に関してはそもそもaufsでマウントできるのかどうか確認したかっただけではないかと思います。

この現象が発生するのは、test-environmentm-managerが原因ではありませんし、
どこまで書くか、の閾値は難しいですね。
多発する現象であるならば記載したほうがよい気もしますが、
この現象自体稀な気もするのでなんとも言えないところ…

@cosmo0920
Copy link
Contributor

何にせよ原因が分かったので良しです 👌

@masa0612
Copy link
Author

aufsのモジュールはある意味必要パッケージですし、
linux-image-extraのインストール手順までは書いたほうがよい気がします。
時間見つけてやっときます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants