読者です 読者をやめる 読者になる 読者になる

Lambdaカクテル

ソフトウェア開発者です.玉石混淆です.

一日の記録

晴天だったようだが体調はそれほど快調でもなく,そもそも寝られなかったので徹夜をしている.今は目を充血させながらこの記録を残している.

今日はいくつか技術的進展があった.

ファイルサーバを仮想化するのはやめた

ファイルサーバの仮想化に幾度となく挑戦してきたが,あまり望んだ結果が得られなかったので,普通にホストOSであるCentOS 7がゲストであるOS X El CapitanにNFS共有を提供するという形に落ち着いた.NFSは安定していて速い.その一方で,ユーザ認証といったシステムは基本的にないので,それをやりたければLDAPをうまく使う必要があることが分かった.僕の場合はどうせ一人でバックアップ代わりに使うファイルサーバが欲しかっただけなのでパーミッションを777にしてやりすごした.手抜きも大事.

SBCLSDLを動かして図形描画ができるようになった

f:id:Windymelt:20170416223555p:plain

SBCLというのはCommon LISPの処理系.

lispbuilder-SDLというSDLCommon LISPから扱うためのライブラリをquicklispで導入した.SDLのバイナリはbrewでインストールし, lispでSDL | iso.enat.jp さんのブログを参考に調整したところ動いた.

内容は下記サイトのコードを改造した程度に留まっている.

d.hatena.ne.jp

(ql:quickload :lispbuilder-sdl)
(require :lispbuilder-sdl)

(defun main ()
  (sdl:with-init ()
    (sdl:window 200 200 :title-caption "hogera")
    (setf (sdl:frame-rate) 10)

    (sdl:with-events ()
      (:quit-event () t)
      (:key-down-event () (sdl:push-quit-event))
      (:idle ()
             (sdl:clear-display sdl:*black*)
             (sdl:draw-circle
              (sdl:point :x (random 200) :y (random 200))
              10
              :color sdl:*green*)
             (sdl:update-display)))))

(sb-int:with-float-traps-masked (:invalid) (main))
(main)

しかし,Common LISPオブジェクト指向システムであるCLOSを使ってタスクシステムを実装すれば,沢山のオブジェクトを自律的に画面に表示できるだろう. これは次の課題としておきたい.

Common LISPで開発していると,SLIMEが提供する機能が非常に便利だと気付く.カーソルのあたっている関数の引数についての情報がミニバッファに表示されるし,高機能なREPL/デバッガを使うことができる.

FreeBSD or Ubuntuへの移行の機運について

機運はちょっと下がった.Finderで画像に当てているタグが他のOSでは当然引き継げないことに気付いたからだ.それと,Steamのゲーム対応.OS Xでは動くがLinuxでは動かないというゲームがあるし,そもそもFreeBSDにSteamの公式クライアントは存在しない.不自由な世界だ.

それはそれで,年代物のMac ProOS Xのアプデごとにどんどん重くなっていくのを見ると,年老いた家族を見ているようで辛くなってくるのである. やっぱり爆速で使いたい.ソフトウェアを起動するだけで数十秒も待たされるのは苦痛である.

KVM + oVirtによる仮想化環境構築を試みて,挫折したメモ

表題のままです.oVirtは個人で扱うには重すぎて使えませんでした.素直にGUI環境でvirt-managerを使うことにします.

そもそもoVirtを導入しようと思ったきっかけはサーバの仮想化でした.KVMを導入し,FreeBSDなどを入れて遊んだりファイルサーバにしようと思ったのが始まりです. 僕の結論はoVirtは個人で使うものではないということです.簡単にWebベースで設定できると思って導入するとえらい目に遭うでしょう. いくつかの理由を挙げてみようと思います.

そもそもoVirtとは

oVirtとは,仮想化基盤を構築するためのソフトウェアです.もともとRedHatが開発していたものがオープンソース化しました. Webベースでの操作が可能で,一度セットアッップすればクリック操作で仮想マシンを作ったり捨てたりできます.

僕はWeb環境で動かせる仮想化環境を探していたので,さっそく導入してみようと思ったのですが,これが茨の道でした. このソフトウェアはただのダッシュボードを提供するものではなく,仮想化プラットフォームを作成するIaaSソフトウェアです.

oVirtは重い

とにかくoVirtは重いです.個人の自宅サーバで動かせるようなものではありません.CentOS7の上で(ZFSと)oVirtを稼動させたところ,数GiBものメモリがあっというまに無くなりました.oVirtはjavapostgreSQLのプロセスをいくつも立ち上げます.さらに仮想マシンが使うメモリがこれに上乗せされるので,自宅サーバでは相当潤沢なメモリがないとまともな運用は不可能です.ZFSが消費しているメモリもある程度あるはずなので,あまり正確なことは言えませんが・・・正直ここまでメモリを食うとは思っていなかったのでびっくりしました(導入当時はこれほど大規模なソフトウェアだとは思っていませんでした).

oVirtは抽象度が高い

oVirtはOpenStackと同じ仮想化基盤なので,ストレージも仮想化します.複数のホストが存在する状況が前提となって稼動するため,ホストのボリュームを直接マウントするのは困難です.ストレージはNFSなどで通信することになっています.ホスト1台の場合もNFSを経由する(さらにその上にゲストがファイルシステムを作る!)ことになるので,ここがボトルネックになりえます.

ストレージの仮想化は大規模環境では有用ですが,個人が持っている1台のサーバで動かすにはオーバーヘッドにしかなりませんでした. おかげでホストのZFSが持つ速度が完全に殺されてしまい,ホストでは100MiB/sec出ていた書き込み速度が1MiB/secになっていました.グエー

oVirtサーバとホストとの関係

oVirtでは,oVirtがインストールされるホストと,仮想マシンが稼動するホストとは分離して考えられます.複数のホストをかかえる仮想化プラットフォームを構築するソフトウェアなのでなので当然ですね.ただのダッシュボードとの主たる違いです.

oVirtに管理されるホストはSSH経由で従属することになり,ほぼ専用ノードのような振舞いになります.たとえばNICにも自動的にブリッジが設定され,仮想マシンが占有します.ファイアウォールも自動設定されます.すべてがoVirtの管理に入ります.

このような理由から,仮想マシンの他に何かアプリケーションを動作させたいのであれば,oVirtによる管理の導入はおすすめできません.

virt-managerへの移行

僕は素直にWebではなくGUIで操作するvirt-managerを使うことにしました.oVirtよりもはるかに小規模で,素直な動作をしてくれます. 個人で自宅サーバで動作させるのに丁度良い抽象化が行えます.ホストのディスクをマウントさせたりするのも簡単です.

CentOS7で最小限のインストールからMATEをインストール – the2g

マシンの身の丈に合った環境が大事ですね.

参考資料

ここを見て導入しました.詳しくて分かりやすい資料です.ありがとうございました.

qiita.com

日記

花粉症は未だに続いている。アレグラのジェネリックを飲んでいるおかげで薬代は比較的抑えられている。それでもうっすら目は痒いし、喉もむずむずする。春の訪れは鼻からやってくる。

最近寝起きが良くない。気がつけば12時を回っているのが常で、たいてい6時間寝ていない。働きすぎというわけではなく(むしろ幸せな方だ)生活スタイルが偏って構築されているのが原因だと思う。帰ったらまずパソコンを起動して、動画を見ているかゲームをするかしている。帰宅時間は遅いのでゲームをしていては夜中になるのは当たり前なのだが、ついついやってしまう。しかし、何もしないなら何もしないで不満感が募って来て、とても満たされない。つまらなさを感じてしまって寝られない。十分な知的満足と感情的満足を得るには何が良いのだろう。ゲームとネットサーフィンを無くしたら自分が自分で無くなるような、全てを失ってぱらぱらと砂粒になってしまうような不安を心の何処かで感じている。だからやめられない。

鴨川のほとりに桜が咲いて、覆いかぶさるような春。

サーバのHDDが一台駄目になってしまったようだ。数日前から不穏な兆候はあった(破損メッセージがときおり表示されていた)が、本格的に壊れたらしくZFSが自動的に破損ディスクをプールから切り離した。まだ二台稼働しているので安心しているが、替えのディスクが届くまでは不安だ。今時の大きめのディスクを買ったので実効容量は4TBになる予定。

休日はあまり家から出たくない。人がたくさんいて不安を感じるし、行き交う人声やエンジンの騒音、色々な音が自分に敵対しているように聞こえる。警戒心が強いのかもしれない。なかなか家から出られずに困るときもある。そういう経験をした人はあまりないだろうから、自分との付き合い方は自分で探すしかないのかもしれない。

精神的に複雑な人間なので、強くなれればなぁと思う。

サーバルちゃん久しぶりに見たけど可愛かった。

Common LISP環境構築メモ(SBCL, Quicklisp, ASDF2, SLIME)

備忘録として.

Common LISPは実用的とよく言われるが触ったことがなかったので,学習してみようと思った. 今回は環境構築をやる.

追記

  • 2017/04/07 Roswellについて追記

目次

  • 追記
  • 目次
  • 処理系インストール
    • Hello, World
  • Quicklisp(ライブラリマネージャ)
    • ダウンロード
      • 蛇足
    • セットアップ
    • ライブラリを検索する
    • ライブラリをインストールする
  • ASDF2(ライブラリマネージャ)
    • セットアップ
  • SLIME
続きを読む

OS X Sierraでtmuxが改行を正しく表示しなくなったメモ

背景

Sierraにアップデートしたところ,tmuxが改行を正しく表示できなくなってしまった.

  • CR+LFするべき箇所でLFしかしてくれなくなった(改行するがカーソルが行頭に戻らなくなった)

作業

tmuxはbrewでインストールしていたので,macOS Sierraに更新したらHomebrewで入れたtmuxでエラーが出てきた - Qiitaを参考にして最新の開発版tmuxを再インストールした.

brew uninstall --force tmux
brew install --HEAD tmux
  • --force は強制削除オプション.もう壊れているので全部消してしまう.キャッシュを削除する.
  • --HEADは最新の(安定版ではなく開発版の)ソフトウェアをインストールさせるオプション.

結果

全て正常に表示できるようになった.

必ず

「必ず」って自分で言うと不思議と自信が湧いてくる

必ずできる、必ず勝てる

言葉は魔術とはまだ完全に切り離されていないのだなあ……

部屋の蛍光灯を替えた

電球色に変えたところハッピー。今まではよくわからない青白い色で、しかも二本あるうちの一本は消えていた。カバーがかかっていたから気が付かなかったが、きっと最初から消えていたのだろう。

暖かい色になったことで落ち着くように感じる。