それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

間違って /tmp を消してしまったので対処。

/tmp にクソでかいキャッシュを作ってしまった

間違って /tmp に大量のファイルと巨大なファイルを作ってしまったので、消そうとして -mindepth つけ忘れた。

find /tmp -exec rm {} ;

悲劇。 /tmp が消えました。あああ・・・ mindepth は alias でつけたほうがいいですね・・・

手作業で再度作る

sudo mkdir /tmp 
sudo chown root:root /tmp
sudo chmod 1777

/tmp が正常なときのパーミッション

stat で詳細な情報を確認してみた。

takuya@host:~$ sudo stat /tmp
[sudo] password for takuya:
  File: /tmp
  Size: 24576       Blocks: 48         IO Block: 4096   directory
Device: fd01h/64769d    Inode: 915714      Links: 11
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-02-26 12:34:28.058064062 +0900
Modify: 2020-02-26 12:34:24.034106334 +0900
Change: 2020-02-26 12:34:24.034106334 +0900
 Birth: -

うん。1777 ですね。

関連資料

https://takuya-1st.hatenablog.jp/entry/2016/03/14/180620

OPNSenseをKVMのvirtio で動かしたほうが速かった

OPNSenseをKVM+qemu 上に作成した。

構成としては、OpenWRTを載せた同じマシンに載せた。

virtio

参考資料として、さくらインターネットの記事を見ていたら、virtio について次のような記述があった。

たとえばKVMではストレージドライバとしてvirtioを利用するとトラブルが出るケースがあるようだ。こうした仮想環境上へのインストールについては公式Wikiドキュメントが公開されているので、こちらを事前に参照しておくと良いだろう。

FreeBSDベースのファイアウォールOS「OPNsense」(インストール編) | さくらのナレッジ

ネットワークをvirtio にするのは 19.07 あたりでサポートされていて、今日現在(2020-02-25)の最新バージョンであれば、特に何もせずに認識されました。

ただ、一点注意があるとすれば。nic の名前が通常と異なる。

通常であれば em0 / em1 / em2 となるところが、vtnet0 / vtnet1 / vtnet2 のように、ネットワークの名前が変わりました。

そのためにLAN/WANなどの割当てがすべて設定し直しになる。インストール後に設定変更する際には、名前に注意が必要

f:id:takuya_1st:20200225142702p:plain

速度測定

LAN内部で速度測定をしてみました。 em1 の場合は、〜300Mbps だったが、vtnet1 の場合は 〜700Mbpsくらい出ていた。キャッシュやメモリの設定が影響するとはいえ、ドライバ変更で、速度に大幅に変化があるので、virtio のほうが速いといって差し支えないと思う。

f:id:takuya_1st:20200225142328p:plain

rcloneのバックアップがシンボリックリンクを取得していないことが判明

rclone でgsuite / google drive にバックアップに注意が必要

google ドライブなどいくつかのストレージは、シンボリックリンクをサポートしていないので、シンボリックリンクは取得されない。

取得されない例

rclone sync /etc/ my-google-drive:/my-etc

シンボリックリンクを辿って取得する

シンボリックリンクそのものが取得できないなら、ファイルを「辿って」取得してしまえばいいのではないかという乱暴な解決策がある。

link をコピーするフラグ

takuya@:~$ rclone help flags | grep links
150:  -L, --copy-links                                 Follow symlinks and copy the pointed to item.
249:      --skip-links                                 Don't warn about skipped symlinks.

ファイルを実体としてコピーする

rclone  --copy-links sync /etc/ my-google-drive:/my-etc

これで、ファイルはシンボリックリンクとしてはコピーされないが、中身はコピーされる。

その他の解決策

そもそも sync / copy を使わない。ちゃんと tar.gz は dump ファイルを取得してバックアップとして転送するなどの解決策が考えられる。

ただし、1つの巨大なファイルを送信するとストレージ・サービス側で拒否される可能性が大きい。

symlink をいれるときの注意

symlink を使うと再帰的なフォルダ構成になる可能性があるので、永遠にsyncが終わらないという事件も起きそう。

少し落ち着いて考える必要がありますね。

参考資料

  • rclone help flags