Category Archives: FreeBSD

FreeBSD:UFS2の不整合でKernelPanic

あんまり見たこと無いけど原因考えるとなるほどと思った。
原因はおそらくRAID Arrayが離脱したとき。
その後Arrayは復旧出来た。

mode = 0100744, inum = 12118762, fs = /data
panic: ffs_valloc: dup alloc
cpuid = 1
KDB: stack backtrace:
#0 0xffffffff808e7e70 at kdb_backtrace+0x60
#1 0xffffffff808af955 at panic+0x155
#2 0xffffffff80ac1a0a at ffs_valloc+0x86a
#3 0xffffffff80afecb4 at ufs_makeinode+0x84
#4 0xffffffff80d97dd2 at VOP_CREATE_APV+0x92
#5 0xffffffff80957f49 at vn_open_cred+0x2c9
#6 0xffffffff80951651 at kern_openat+0x261
#7 0xffffffff80c8f027 at amd64_syscall+0x357
#8 0xffffffff80c7571b at Xfast_syscall+0xfb
Uptime: 1m17s
Dumping 381 out of 6119 MB:..5%..13%..21%..34%..42%..51%..63%..72%..84%..93%
Dump complete
Automatic reboot in 15 seconds - press a key on the console to abort
Rebooting...

ファイルシステムで重複したものがあるっぽい?
どうやら不整合があるらしく、該当のファイルにアクセスするとPanicする模様
UFS2なのでfsckで・・・と思ったら実行しても解決せず、何故だ。

# tunefs -p /dev/da1p1
tunefs: POSIX.1e ACLs: (-a)                                enabled
tunefs: NFSv4 ACLs: (-N)                                   disabled
tunefs: MAC multilabel: (-l)                               disabled
tunefs: soft updates: (-n)                                 enabled
tunefs: soft update journaling: (-j)                       enabled
tunefs: gjournal: (-J)                                     disabled
tunefs: trim: (-t)                                         disabled
tunefs: maximum blocks per file in a cylinder group: (-e)  4096
tunefs: average file size: (-f)                            16384
tunefs: average number of files in a directory: (-s)       64
tunefs: minimum percentage of free space: (-m)             5%
tunefs: space to hold for metadata blocks: (-k)            6408
tunefs: optimization preference: (-o)                      time
tunefs: should optimize for space with minfree < 8%
tunefs: volume label: (-L)

# fsck -y /dev/da1p1

** /dev/da1p1

USE JOURNAL? yes

** SU+J Recovering /dev/da1p1
Journal timestamp does not match fs mount time
** Skipping journal, falling through to full fsck

** Last Mounted on /data
** Phase 1 - Check Blocks and Sizes
24275080 DUP I=12118750
UNEXPECTED SOFT UPDATE INCONSISTENCY

~略~

ぐぐってみたらジャーナルとファイルシステムの間に重複したものがあるらしい
一時的にsoft updatesを無効にしてfsck走らせれば解決するそうな

# tunefs -n disable /dev/da1p1
tunefs: soft updates cleared
 
# fsck -y /dev/da1p1          

** /dev/da1p1

USE JOURNAL? yes

** SU+J Recovering /dev/da1p1
Journal timestamp does not match fs mount time
** Skipping journal, falling through to full fsck

** Last Mounted on /data
** Phase 1 - Check Blocks and Sizes
24275080 DUP I=12118750
24275081 DUP I=12118750

~略~

904133 files, 2047901555 used, 789805708 free (1650660 frags, 98519381 blocks, 0.1% fragmentation)

***** FILE SYSTEM MARKED CLEAN *****

***** FILE SYSTEM WAS MODIFIED *****

無効にしたsoft updatesを戻す。

# tunefs -n enable /dev/da1p1
tunefs: soft updates set

念のため再マウントする前にfsckしてエラーが出ないことを確認
full fsckなので結構時間がかかる

マウントしなおして再利用開始
一応問題は解決した模様

新NAS鯖のRAID関係の調子がいまいちなので困る
RAIDカードかバックプレーンもしくはSASのケーブルのどれかに原因があるんじゃないかとにらんでるのだが・・・

FreeBSD:Proftpdで日本語ファイル名が使えない問題を解決

最近新しいNAS兼なんでもBOXとしてFreeBSDベースで構築しているのだけど
Proftpdで日本語のファイル名(ディレクトリ含む)が使えなくなっていて??となったのでメモ

コンフィグファイルは前使ってたのをそのまま持ってきただけだったのでなんで動作が違うのか。
旧NASから該当ファイルをrsyncで移動したので、オプションに問題でもあったかと思ったけど
そもそもftpクライアントからディレクトリを作成しても?????という文字列になってしまう。

結局ProftpdのBuildオプションにあるNSL(National Language Support)が問題源だった。
デフォルトでCheckが付いているのでそのままスルーしたのだけど
まさかトラブルの原因になるとは。。。

Portsからmake configでチェックを外してビルドし直したらなんとかなった。
Apache24といいFreeBSD10のパッケージはどーも癖がある。。。

FreeBSD:FreeBSDのApache2.4でowncloudが動かない?

新しく環境作ってやってみたけど、結局そういう結論になった。
具体的には何かが原因でWebdavのコマンドがブロックされるみたい。
この”何か”がわからないので困っている。
Webdavモジュールはそもそもロードしてないし。
一応公式フォーラムには対応例があったけど、どれも当てはまらなかった。

Apacheに記録されるログ

xxx.xxx.xxx.xxx - - [16/Apr/2014:08:47:56 +0900] "PROPFIND /owncloud/remote.php/webdav/ HTTP/1.1" 405 253

owncloudに記録されるログ

Warning	core	isWebDAVWorking: NO - Reason: Method not allowed (Sabre_DAV_Exception_MethodNotAllowed)	2014-04-15T23:47:56+00:00

Apache2.4なら全部ダメというわけではなく、たとえばUbuntuでリポジトリからインストールしたものに関しては大丈夫みたい。
今のところ問題があるのはFreeBSDのApache2.4で、Portsもパッケージも両方ダメだった。
ちょっと原因がわからないし思い浮かばないので仕方が無くnginxをフロントにおいて、
owncloudはphp-fpm経由で動かすことにした。

owncloudの公式にあるnginxの設定例はサブドメインのサイト全体に対する設定だったので
あるURLの下に配置するには不適だったのでいじくる。
サブドメイン用意するのはいいとしても、SSLのキーをもう一個用意しないといけないのは面倒だから・・・
というわけで大体↓こんな感じに

# owncloud
location ^~ /owncloud {
        root /usr/local/www;
        index index.php;
        try_files $uri $uri/ /index.php?$args;
        location ~ ^/owncloud/(?:\.|data|config|db_structure\.xml|README) {
                deny all;
        }
        
		rewrite ^/owncloud/apps/([^/]+)/(.+\.(css|php))$ /owncloud/index.php?app=$1&getfile=$2 last;
        rewrite ^/owncloud/remote/(.*)$ /owncloud/remote.php/$1 last;
		
        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;
                include fastcgi_params;
                fastcgi_index index.php;
                fastcgi_param PATH_INFO $2;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass  127.0.0.1:9000;
        }
        location ~* \.(?:jpg|gif|ico|png|css|js|svg)$ {
                expires max; add_header Cache-Control public;
        }
}

公式のには入ってないのが多々あるしもうちょっと洗練させれそうな気がしなくもないが、ひとまずこれで動いてる模様。

FreeBSD:FreeBSD9.1のシャットダウンでフリーズする問題が解決してた

FreeBSD9.1のRELEASEから問題が発生してた
シャットダウン時に”All buffers synced”のところでフリーズして動かなくなる問題が解決してた。
今日freebsd-updateして2回再起動したら気がついた。
前回の再起動は4月とかだったので、いつ直ったのかわからん(´Д`;)

NEKOSABA /root# uname -a
FreeBSD nekosaba.nekolove.jp 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

ま、まあこれで気兼ねなく再起動出来ますね。

FreeBSD on VirtualBoxはまだまだ問題あり

環境のせいかわからないが、仮想化したUbuntuのインターフェイスで盛大にDropが出る
ホストの物理側だと問題無いので、ブリッジインターフェイスに問題あるっぽい
他のOSだとどうなんだろうな、あんまり報告が無いってことは大丈夫なんだろうけど(´Д`;)
環境のせいかなぁ・・・

メイン鯖がハイスペックな割にあんまり使われてないので、何かに使いたいのですがのう
巨大なストレージ抱えてるから他のOSやハイパーバイザーに乗り換えられないという問題ががが

FreeBSD:phpVirtualBoxにVNCのオプションがついてた

OracleのphpVirtualBoxにはVM起動時にRDPを使用可能にするオプションがあるのだけど
FreeBSDではそもそもRDPが未サポートなんで、使えなかったのね
ふとPortsからアップデートしたphpVirtualBoxを見てみたらRemoteDisplayのタブが出来ていて
VNCを試してみたら使えた

20132129343_phpVirtualBox -_162

Authentication Methodの項目が機能しておらず、Noneにしてもパスワードを求められる
なのでこれはVNCのパスワードを設定してある必要がある
Google先生に聞いたらNAS4FreeのWiki?に書いてあった。他にもUSB2.0は意味が無いからDisableにしとけとある。

http://nas4free-extensions.googlecode.com/svn-history/r57/wiki/phpvirtualbox_usage.wiki

抜粋すると以下のように

su vboxuser  (replace vboxuser with yours if different)
VBoxManage modifyvm testVM --vrdeproperty VNCPassword="myPass"

環境によってはvboxuserへのsuはいらないかもしれない。
これで使えるようになった。

201321419339_VBoxVNC _163

ちょっとVirtualBoxに問題があって今は使ってないけど、便利になりましたなー

FreeBSD:9.1RCでshutdownに失敗する件

9.1系にアップデートしてからall buffers syncedで固まる現象が出ている
確認しているのはhpのML110G7だけど、ほかにも起きる環境があるっぽい
rebootするときにハードリセットが必須になってまうので、ちょうめんどくさいのだ。

調べてみたらバグ報告が出てた。
freebsd-bugs – kern/172952: 9.1 hangs on reboot after all buffers synced
http://freebsd.1045724.n5.nabble.com/kern-172952-9-1-hangs-on-reboot-after-all-buffers-synced-td5754065.html

カーネルの電源管理絡みの問題かなぁとぼんやり思っていたら
ZFSの処理に問題があったらしい、解決するにはパッチとビルドが必須
RELEASEにこれ載ってくれるかなぁ・・・

FreeBSD:phpVirtualBoxでなんちゃってハイパーバイザー

FreeBSDを生かしたまま、もしくはハイパーバイザに載せ替えてLinuxのゲーム鯖を動かせられないか
夏頃から動き回って無駄金使った結果、FreeBSDにVirtualBoxとphpVirtualBoxを乗せて
仮想マシンのホストにすることが出来た。

FreeBSDのVirtualBoxでRDPによるコンソールはサポートされていないことから
仮想マシンを立ち上げるときに、VNCサーバを立てるオプションが渡されるように
スクリプトを書き換える必要があった

ここに書いてある内容でおk
FreeBSDでphpVirtualBoxのコンソールを使う方法 | TATSUYA.info
http://tatsuya.info/wp/archives/10652

サーバの名前に;ポート番号を入れることでVNCサーバが勝手に立ってくれるので
サーバのIP:ポート番号でOSのインストールからVNCで見れる。
ちょーべんり

いくつか仮想化ソフトを試してみたが、最大の候補だったESXiが
先行き不安&CSGO鯖として使い物にならないのには閉口した。
Hyper-Vは優秀だったが、Tickレートを上げるとラグが増えるのでちょっと厳しい。
KVMやXenは試す機会が無かったが、結局VirtualBoxが使えることがわかったのでこれでFA
Webブラウザでちょっとしたメンテナンスが出来るのもポイント高かったのでー。

サーバへの収容数はTickが128ぐらいになると2コアで1鯖あたりがCPU的に限界っぽい感じ
デフォルトの64なら3鯖ぐらいはいけるようだった。メモリは8Gぐらいいるような感じだったが。
仮想化してあるんで、割り込みによるオーバーヘッドのせいだろうから物理マシンならもう少し詰め込めそう
物理マシンの数を増やすと電気代や空調の問題が出てくるから、
仮想化して台数減らす方向に動いたわけだけども。

FreeBSD:PC-BSD9.1 RC1からFreeBSDをインストール

しますた^q^
普通にするとちょっと面倒なzfs bootがさくさく出来るのでありがたい。
RC1なのでインストールされるのもRC1のFreeBSD
ちょっとacpi周りにトラブルがあるね。リブート時にリセットがかからなかったりRAIDカード絡みのエラーが出てる。

ところで、
最近portsとsrcのアップデートをSubversionに任せるようにした。
http://wiki.freebsd.org/PortsSubversionPrimer
過去のversionに戻したいというような時にcvsupは不便で、portsnapだと対応出来なかったから
こっちの方がよさそう

HP ProLiant:メモリを購入

無計画な鯖のうpぐれのため、メモリを買ってきました。


おや・・・?実は写真撮る前に組み込んでしまったのでした^q^
中に入ってるのは今まで使ってたECCメモリ
片方はもらい物だったような

んで買ったのはKingstonのKVR13E9K2/16Iですな、8Gx2で16Gのセットだす。
おかげで無事にごらんのありさまになりました。

合計20G!
ESXi化が捗るね!
問題があってまだ部品が足りないのだけど!
余ったパーツで一台生えるのが現実になりそうな・・・