EC2にマウントしたS3の空き容量不足問題

Share Button

EC2にs3fsでマウントしてあるS3のバケットに、EC2上に置いてあるデカいデータを移そうと思ったのだが、移している途中からエラーで一切コピーできない状況が発生した。

cp: `/mnt/s3/**/_.dat’ の書き込みエラー: デバイスに空き領域がありません

いやいやそんなわけないじゃん。df -hコマンドで空き容量を見る。

$ df -h
ファイルシス  サイズ  使用  残り 使用% マウント位
s3fs         256T     0  256T   0% /mnt/s3

ほらやっぱめっちゃ空いてんじゃん。
困った。いわゆるinodeの枯渇というやつか…?

$ df -i
ファイルシス      Iノード  I使用     I残り I使用% マウント位置
s3fs            0      0         0      - /mnt/s3

そうっぽい。。。
ということで一部の重複ファイルなどをせこせこと削除したところinodeがいくつか復帰したようでコピーできるようになった。

inode枯渇が復帰した状態でもう一度df -iを叩いても上記の0,0,0から結果が変わらなかったので、そもそもマウントしたS3上のinode情報は正しく反映されていないっぽい。まあ使用容量が0Bになっている時点でお察しではあるのだが。

次に無理になったらもう消せるものがないので、試しにEC2上からscp使ってS3のバケットに転送するという方法を試そうと思う。時間かかって仕方ないが。残念ながらAWSCLIを使うためのcredentialすらもらえていない末端管理者なのでやむを得ない。

とはいえそんな手軽にinodeが枯渇するんじゃたまんねーわと思ってたのだが、S3の中身を色々と調べていて原因がわかった。S3上に展開されていたSASのソフトウェアデポ(sasdepot)がクッソみたいな量(=ファイル数であり容量ではない)のファイルを保持していたからだった。全くSASはどこまでも鬱陶しいですね。tar.gzでアーカイブして消し去りました。

ていうかs3fsでマウントしたS3上の操作をEC2からやるともたつくの本当に困る。
少なくともchmodでパーミッションを変えようとすると、EC2上のファイルに対してなら一瞬で終わる操作がS3上のファイルだと平気で数分かかる。なんとかなってほしい。


style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-3546003055292762"
data-ad-slot="5749192034">


Share Button

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.