[ カテゴリー » PC関連 ]

またトラブった…

今週FreeNASLink のアップデートを適用したところ、今までJailからも見えていたdevfsがバッサリと見えなくなりました。FreeBSD関連の情報を見ると本来は/etc/devfs.rulesや/etc/rc.confを編集してJailにデバイスが見えるように設定するのが筋で、今まで見えていた方が何かおかしかったっぽいです。

とりあえず緊急回避的に、
/sbin/mount -t devfs devfs /your_jail_root/dev
をPostInitコマンドとして実行させることに。

以前も9.3→9.10にバージョンアップした時に、カーネルがFreeBSD 9から10に変わったことで別途入れていたカーネルモジュールがロードされなかったこともあったり。更新を無視したら毎日メール送ってくるし。FreeNAS、便利なんで使い続けたいのですが、ちょっと改造すると更新のたびにトラブルを警戒しないといけなくなるのが不満。FreeBSDに差し替えた方が良いのかなぁ…

[2016/10/3] タイトル変更

— posted by mu at 01:54 pm   commentComment [0]  pingTrackBack [0]

今頃Anniversary Updateが来た

Windows10のAnniversary Update、ネットで「すでに多くのマシンの配信されていることでしょう」と書かれても一向に配信されず、特に興味もなかったので放置していたのですが、昨日ついに一台に配信。

新しいマシンから順に配信されるという話を聞いたことがあるのですが、Haswell自作マシンでこの時期になるということは、IvyBridgeやBloomfieldはいつのことやら…

アップデート後感じた不具合はAs/RLink でファイルのドラッグ&ドロップがうまくいかない(ドラッグできない)くらいでしょうか(個人的には結構イラつくのですが)

[2016/9/30 追記] 一昨日、IvyBridgeノートPCに配信。あとは自作Bloomfield。As/RはWindowsを2回ほど再起動したら問題なくなりました。。やっぱり問題出る、再現条件不明。

[2016/10/6 追記] Bloomfieldアップデート完了。Haswellに来るのが遅かったので、もっと後になるかと思ってた。

— posted by mu at 11:12 am   commentComment [0]  pingTrackBack [0]

Luck and Price

blog20160414-ZfsDegraded

ブートドライブをUSBメモリ2本のZFS RAID-1で運用していたFreeNASですが、今月頭辺りにScrubでチェックサムエラーが1つ→しばらく様子見→毎日来ていた読み取りエラーのレポートメールが途中から来なくなり、安心→再びエラーレポート、チェックサムエラーが2に増える→警戒レベルを上げる

で、今日見るとチェックサムエラーが一挙に1500に増え、DEGRADEDに落ちておりました。最初のエラーで替えのUSBメモリは購入してあったので交換と。

今回壊れたのはA-DATA DashDrive Durable UD310 USB。どこがDurableだというツッコミは置いておいて、USBメモリってこういう何か月も常時稼働状態という使い方で設計されてないのかなぁ。それとも単なる運? いや、安物だから?

[2016/4/19 追記] UD310をCheck FlashLink にかけてもエラーなし。以前別のマシンでエラー出したUSBメモリでもエラーなし。USBメモリのファームウェアが長時間運用を想定してないのかな…

— posted by mu at 12:51 pm   commentComment [0]  pingTrackBack [0]

ProxmoxでNFSがマウントできなくなった

コミュニティ版Proxmox 4.1Link
+---------+
|         +--------------------->Internet
| Proxmox +
|         +--(192.168.0.0/24)--[ NFS Server (FreeNAS 9.3) ]
+---------+
という形体で運用していたのですが、マシン移動・インターネット側IPアドレス変更となったところ、storage 'NFS Server' is not onlineと出てNFSがProxmox上でマウントできなくなりました。NFS Server側のサブネットには変更が無い上、mount -t nfs (NFS Server address):/foo/bar /mnt/pve/NFS_Serverとやると難なくマウントできる。はて?

Proxmox掲示板Link を読んで

  • IP v6とNFS v4を切る → 変化なし
  • もう一度Proxmox上でNFSサーバを登録する → 変化なし
  • rpcinfo -p ipofnfsserverコマンド → 即座に応答が来て、問題無し (つまりProxmoxでis not onlineと出るのは他の原因)
  • /usr/share/perl5/PVE/Storage/NFSPlugin.pmを読むと、NFSサーバの状態を見るのに使っているコマンドはrpcinfoじゃなく、showmountだった(掲示板の記事はProxmoxのバージョンが古い)。で、shoumount --no-headers --exports (NFS Server address)と打つと、タイムアウトエラー。原因はここか…

なぜタイムアウトが起きるのだろうと調べていると、NFSサーバ上でクライアントのIPアドレスが逆引きできないと、接続拒否するLink とのこと。FreeNASの/etc/hostsにクライアントのIPアドレス(192.168.0.x)を登録すると、showmountコマンドもエラーなし、Proxmoxも無事NFSフォルダをマウントできました。

さて、残る問題はなぜ今までこの設定なしでマウントできていたのか…

[参考]

— posted by mu at 01:38 pm   commentComment [0]  pingTrackBack [0]

foltiaのDBをSqlite→PostgreSQLに変更

私が使いだしたときの(無償版)foltiaLink は、データベースエンジンとしてSQLiteLink を使うようになってました。昔のバージョンやfoltia ANIME LOCKERLinkPostgreSQLLink を使っているようですが、個人で使う用途にはSQLiteで十分だろうと思ってました。

が、実際に使いだすと、時々現れる「Database is locked」なるエラー。背後で動いているコマンド(新しい番組データの取得など)がデータベースへのアクセス権限を独占し、こちらが予約を入れようとしても失敗、背後のコマンドがいつ終わるか分からないのでいつになったら予約ができるのか分からず、イライラすることも。これはトランザクションや排他ロックをデータベースファイル全体へのロックで実装しているSQLiteでは避けられない現象なのかなと。

ということで、下記の手順でPostgreSQLに引っ越しました。Database is lockedはいつ発生するか分からないので改善したか確認できていませんが、放送予定や番組表などが見違えるほど早く表示されるようになりました。予想してなかった副作用ですが、こっちの方がメリット大きい。

さて、今後長期間運用で変な誤動作しなければいいのですが…

[手順]
データベース作成。ここでのスーパーユーザーはPostgreSQLのそれで、rootではない。
  1. PostgreSQLおよびPHPとPerlモジュールをインストール(FreeBSDの場合postgresql93-server, p5-DBD-Pg, php55-pgsql, php55-pdo_pgsql)
  2. PostgreSQLを外部から接続する必要がないなら、postgresql.confにlisten_addresses = 'localhost'を指定
  3. スーパーユーザーで以下のコマンド実行(パスワードを'foltia'以外にする場合には後述のperl/foltia_conf1.pl, php/foltia_config2.phpも適切に設定を)
    $ createuser --no-adduser --no-createdb --password foltia
    $ echo "alter role foltia with password 'foltia'" | psql
    $ createdb --owner foltia -E UTF8 foltia
    

データのコピー

  1. SQLiteのデータをダンプ
    $ sqlite3 ~foltia/foltia.sqlite .dump > foltia.sqlite.dump
    
  2. ダンプしたファイルの編集
    • PRAGMA foreign_keys=OFF;を削除
    • CREATE TABLE foltia_programの部分
      • integer PRIMARY KEY AUTOINCREMENT → serial PRIMARY KEY
    • CREATE TABLE foltia_subtitleの部分
      • startdatetime, enddatetimeの型をinteger → bigint
    • CREATE TABLE foltia_epgの部分
      • startdatetime, enddatetimeの型をinteger → bigint
      • integer PRIMARY KEY AUTOINCREMENT→serial PRIMARY KEY
    • 最後の部分
      • DELETE FROM sqlite_sequenceを削除
      • INSERT INTO "sqlite_sequence" VALUES('foltia_epg',XXXXX) → select setval('foltia_epg_epgid_seq',XXXXX) (XXXXXは数字)
  3. foltiaもしくはスーパーユーザーで以下のコマンドを実行
  4. $ psql foltia < foltia.sqlite.dump

foltiaの設定変更

  1. perl/foltia_conf1.plのコメントアウトされているPostgreSQL設定の行を有効にし、SQLite向けの設定をコメントアウトする
  2. ## for postgresql
    $main::DSN="dbi:Pg:dbname=foltia;host=localhost;port=5432";
    require 'db/Pg.pl';
    
    ## for sqlite
    #$main::DSN="dbi:SQLite:dbname=/home/foltia/foltia.sqlite";
    #require 'db/SQLite.pl';
    
    $main::DBUser="foltia";
    $main::DBPass="foltia";
    
  3. php/foltia_config2.phpのコメントアウトされているPostgreSQL設定の行を有効にし、SQLite向けの設定をコメントアウトする
  4. define("DSN", "pgsql:host=localhost dbname=foltia user=foltia password=foltia");
    // define("DSN", "sqlite:/home/foltia/foltia.sqlite");
    

[2016/3/14 追記] Perlのフラグ付きUTF8による文字化けLink を避けるため、以下のファイルを変更。

  • perl/getxml2db.pl
  • perl/xmltv2foltia.pl
変更内容
  • use Encode;を追加(use Jcode;はたぶん抜いてもいい)
  • [2016/3/23 追記] use utf8;を追加
  • foreach(@line)ループ内の最初に$_ = Encode::decode('utf8', $_);を追加、ファイルから読み込んだ文字列を即刻フラグ付きにする。
  • jcode()->tr(str1, str2)の代わりに、標準のtr/str1/str2/を用いる。変換文字内に/(スラッシュ)が入っているので、エスケープを付ける。

— posted by mu at 11:45 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0404 sec.
prev
2022.1
next
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31