キャッシュディレクトリのアクセス権で Squid が起動できない

SUSE Linux で squid を動かしていたXEN仮想サーバーを sp レベルでバージョンアップしたところ、/(ルートパーティション)と別イメージの Squid のキャッシュディレクトリを保持するSSDの仮想ディスクがマウントできなくなってしまいました。どうせ、キャッシュだし、という事で、Squid キャッシュディスクをフォーマットしてマウントしたり、色々やっているのですが、 Squid が起動できない。SSD に割り当ててマウントした /var/cache/squid 外すと上手く起動できるのですが。元のSSD に戻すと起動しない。

はて何ででしょう? という事で /var/log/messeges をダンプしてみます。

dnssquid: # cat /var/log/messages | grep squid

Feb 16 09:51:19 dnssquid squid[7191]: Squid Cache (Version 3.1.12): Exiting normally.
Feb 16 09:52:46 dnssquid squid: Failed to make swap directory /var/cache/squid/00: (13) Permission denied
Feb 16 09:53:23 dnssquid squid: Failed to make swap directory /var/cache/squid/00: (13) Permission denied
Feb 16 09:55:55 dnssquid squid: Failed to make swap directory /var/cache/squid/00: (13) Permission denied
Feb 16 09:57:37 dnssquid squid: Failed to make swap directory /var/cache/squid/00: (13) Permission denied
Feb 16 09:59:38 dnssquid squid: Failed to make swap directory /var/cache/squid/00: (13) Permission denied
Feb 16 10:00:25 dnssquid squid: Failed to make swap directory /var/cache/squid/00: (13) Permission denied
Feb 16 10:01:21 dnssquid squid[3691]: Squid Parent: child process 3693 started
Feb 16 10:01:21 dnssquid squid[3693]: Starting Squid Cache version 3.1.12 for x86_64-suse-linux-gnu...

: 中略

Feb 16 10:13:01 dnssquid squid[3473]: Using 32768 Store buckets
Feb 16 10:13:01 dnssquid squid[3473]: Max Mem size: 262144 KB
Feb 16 10:13:01 dnssquid squid[3473]: Max Swap size: 5632000 KB
Feb 16 10:13:01 dnssquid squid[3473]: /var/cache/squid/swap.state.new: (13) Permission denied
Feb 16 10:13:01 dnssquid squid[3473]: storeDirOpenTmpSwapLog: Failed to open swap log.
Feb 16 10:13:01 dnssquid squid[3465]: Squid Parent: child process 3473 exited with status 1
Feb 16 10:13:04 dnssquid squid[3465]: Squid Parent: child process 3479 started
Feb 16 10:13:04 dnssquid squid[3479]: Starting Squid Cache version 3.1.12 for x86_64-suse-linux-gnu...

Squid が起動するときに作成される、/var/cache/squid/xx ディレクトリや swap.state が作成できないという事のようです。 "Permission denied" と出るので調べてみると、 squid ディレクトリのオーナーが root になっていました。

dnssquid:/var/cache/squid # ls -al
total 176
drwxr-xr-x 18 root root 4096 Feb 16 10:25 .
drwxr-xr-x 19 root root 4096 Feb 16 10:04 ..
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 00
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 01
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 02
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 03
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 04
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 05
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 06
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 07
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 08
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 09
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 0A
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 0B
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 0C
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 0D
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 0E
drwxr-x--- 258 squid nogroup 4096 Feb 16 10:25 0F
-rw-r----- 1 squid nogroup 102240 Feb 16 11:20 swap.state


dnssquid:/var/cache/squid # chown squid:nogroup /var/cache/squid

で治りました。

根本的な原因はアップデートする手順で誤りがあり、/etc/fstab にごみ行が入ってしまったのが原因なのですが、ここにたどり着くまでちょっと長かった。トラブルシューティングの良い練習になりました.....

lslandcenter.jp
by islandcenter | 2016-02-16 14:58 | SUSE | Comments(0)