BSD

Sun Fire T1000


入手したのでメモ。

2005年12月発表・2006年1月から出荷・2010年1月EOL、という時代の製品です。

Sun MicrosystemsがOracleに買われたのとEOLが同時期なので、「Oracleは無関係」な Sun Microsystems 製品と言いたいところですが、最新のファームウェアにすると Copyright が Oracle になります。(どうでもいい)

pkgsrc/www/php-nextcloud などが特定条件下で segmentation fault になる件

条件が揃うと、nextcloud の occ status のような単純な処理でも segmentation fault が発生する。

根が深かったのでメモっておく。

概要
php で mysql と curl の extension が両方あり、mysql 5.7 以降と openssl 1.0系(以前)を組み合わせていると不具合が発生する(場合がある)。

pkgsrc(2019年2月頃~)の mysql のデフォルトは 5.7、NetBSD 8.[01] の openssl は 1.0.2k、なので引っ掛かりやすい(はず)。
(NetBSD 9.0 からは openssl 1.1系になるはず……)

NetBSD/macppc (8.0) で pkgsrc/www/apache24 が作れない問題

/.../libapr-1.so: undefined reference to `__sync_fetch_and_add_8'
/.../libapr-1.so: undefined reference to `__sync_val_compare_and_swap_8'
/.../libapr-1.so: undefined reference to `__sync_lock_test_and_set_8'
/.../libapr-1.so: undefined reference to `__sync_fetch_and_sub_8'
/.../libapr-1.so: undefined reference to `__sync_sub_and_fetch_8'

……というエラーが出る。

NetBSD/macppc (8.0) を久々に触る

部屋を整理していたら G4 Mac Mini が発掘されたので触ってみた。

既に NetBSD 4.99 が入っていたので 8.0 のカーネルと置き換えてみたが起動せず。
あれこれ弄ってるうちにパーティション壊してしまったので再インストール。

得られた教訓:

  • sysinstやdisklabelで直接パーティションを作ってはいけない(pdiskを使いましょう)
  • Apple_partition_mapを壊されてpdiskのinitializeもできないハマりは dd if=/dev/zero of=ディスク bs=おおきめ count=1 とかで頭の方を潰して再度pdisk
  • hfsutilsはドキュメントに書いてある場所にないのでpkgsrcのバイナリを漁る
  • ofwboot.xcfからINSTALLカーネルは起動するけれどGENERICカーネルは起動しない(最初に起動できなかったのはこれ)
  • ofwboot.elfからだとGENERICカーネルも起動する

しょしんしゃには厳しいけど、しょしんしゃはmacppcとか使わないからいいか。

PuLP / NetBSD

NetBSD で PuLP(いきあたりばったり編)

(1) 必要なものを pkgsrc などを使って入れておく。

pkgsrc/lang/python27
pkgsrc/devel/py-pip
pkgsrc/math/coinmp (CBCなど)
他に(使うなら)pkgsrc/math/glpk など。

Python は 3 の方が良いのかもしれないけれど、他の用途で 2.7 使ってるので。

(2) PuLP は pkgsrc にないので pip で入れる。

# pip2.7 install pulp

とか sudo でやるとか、そんな感じで。

(3) /usr/pkg/lib/python2.7/site-packages/pulp/pulp.cfg.linuxを直接編集する。

PulpCbcPath を、pkgsrc の(coinmpの)cbc に書き換える。

#PulpCbcPath = %(here)s/solverdir/cbc/%(os)s/%(arch)s/cbc
PulpCbcPath = /usr/pkg/bin/cbc

(これをやらないと、デフォルトで site-packages/pulp/solverdir/cbc/linux/64/cbc とかを exec しようとして動かない。)

もうちょいマシな方法があれば教えてください。
Linux 用意するというのはナシで。

さくらVPS v4と旧プランの比較

dmesg の比較(diff -u の結果の一部)で – が以前から使っている旧プラン(大阪)、+ が現行v4(東京)。
ただし、NetBSD 7.0_BETA/amd64。

プランはいずれもCPU仮想2コア, メモリ1GB, HDD100GB。

qemu が違う(バージョンが上がってる)っぽい。

-Red Hat KVM (RHEL 6.3.0 PC)
+QEMU Standard PC (i440FX + PIIX, 1996) (pc-i440fx-trusty)

物理ハードが新しいっぽい。
(qemuのオプションで変えられるから本当かどうかは謎)

-cpu0 at mainbus0 apid 0: Westmere E56xx/L56xx/X56xx (Nehalem-C), id 0x206c1
-cpu1 at mainbus0 apid 1: Westmere E56xx/L56xx/X56xx (Nehalem-C), id 0x206c1
+cpu0 at mainbus0 apid 0: Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz, id 0x206d7
+cpu1 at mainbus0 apid 1: Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz, id 0x206d7

このへんも qemu のバージョンの違いか。

+hpet0 at acpi0: high precision event timer (mem 0xfed00000-0xfed00400)
+timecounter: Timecounter "hpet0" frequency 100000000 Hz quality 2000
 ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S0_] (20131218/hwxface-646)
 ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20131218/hwxface-646)
 ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20131218/hwxface-646)
-ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S3_] (20131218/hwxface-646)
-ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S4_] (20131218/hwxface-646)
 piixpm0 at pci0 dev 1 function 3: vendor 0x8086 product 0x7113 (rev. 0x03)
 timecounter: Timecounter "piixpm0" frequency 3579545 Hz quality 1000
 piixpm0: 24-bit timer
-piixpm0: LNKS: _SRS failed: AE_NOT_FOUND
-interrupting at ioapic0 pin 9
+piixpm0: interrupting at ioapic0 pin 9

virtio のデバイス認識順序が違う。
(略)

qemu のバージョン…

-uhidev0: QEMU 0.12.1 QEMU USB Tablet, rev 1.00/0.00, addr 2, iclass 3/0
+uhidev0: QEMU QEMU USB Tablet, rev 2.00/0.00, addr 2, iclass 3/0
 atapibus0 at atabus1: 2 targets
-cd0 at atapibus0 drive 0: <QEMU DVD-ROM, QM00003, 0.12.1> cdrom removable
+cd0 at atapibus0 drive 0: <QEMU DVD-ROM, QM00003, 2.0.0> cdrom removable
 cd0: 32-bit data port
-cd0(piixide0:1:0): using PIO mode 3
+cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
+cd0(piixide0:1:0): using PIO mode 4, DMA mode 2 (using DMA)

大きな違いはなく、どちらも安定しているようです。

VPSなので利用状況によって変動はあると思いますが、整数演算などは新しいv4の方が少し速く、ファイルI/O他は同程度のようです。

わざわざ乗り換えるほどではないですが、新規なら v4 で良いと思います。増設の場合は、同じリージョンでないと(仮想)スイッチが使えないので、どうするか迷うところ。

NetBSD/amd64 on さくらVPS

一番安いプランの試用を始めました。

何の変更もなく6.1 (RC) のISOで起動。今のところ負荷をかけても安定しているようですので、そのまま契約しそうな流れです。

ACPIやSMPは切らなくても問題ないようです。

CPU は Intel(R) Xeon(R) CPU E5645 と認識されますので、x86_errataも関係ありません。

NetBSD/amd64 on CloudCore VPS (3) 終了編

事実関係は以下の通り。

  • 2013年3月15日に再起動を伴うサーバのメンテナンス。一週間前に予告。内容は「仮想環境の再起動に時間がかかってしまう不具合」の解消とのこと。
  • メンテナンス後に再起動に失敗。以前使用したISOイメージも起動せず。
  • 起動しない症状と同じものを発見。 https://bugs.launchpad.net/qemu/+bug/897771
  • 問い合わせたところ、このバグを含むバージョンの qemu-kvm であるとの回答。qemu-kvm-1.1.1 以降では修正されている (http://tima-sls.imag.fr/viewgit/general/?a=commitdiff&p=QEmu&h=cdde6ffc27517bdf069734fbc5693ce2b14edc75) が、導入したホストOSの基本パッケージを使用するため、対応の検討はしないとのこと。

まあ、こちらは動作保証外のことをやってるし、個別にバグ修正を行わないというのもわからなくはないんであきらめるわけですが、「試用して動くことを確認して契約したら違う環境になってしまった」というのは結構困った話なのではないかな。

普通に提供されている環境で使う分には、サポートの返事も早いので悪くはないかと思います。念のため。

これが1年契約の初日とかであればもう少し頑張る可能性もあったのですが、もう3/4は使ったので更新なしで終了かなといったところ。次を探さないと。