FreeBSD ZFS 自動產生 Snapshot 工具

FreeBSDZFS 可以用,最早的時是自己寫 script 產生 snapshot,並且自動 rotate,現在則是用 sysutils/zfs-snapshot-mgmt 做到...

設定檔是 YAML 格式,裡面的數字大多都是以分鐘為單位 (不是秒,曾經搞錯,過了一個禮拜才發現...),由於有 sample config 可以看,這邊就不提了。

除此以外要注意的是,在產生 snapshot 時是以 GMT 時間為準,但命名 snapshot name 時卻是以是以當地時間為準,所以可能會看到八個小時的差異 (如果系統有設定 timezone),基本上不用太在意。如果真的在意,可以用 offset 這個參數調整。

*BSD 出新版...

看到 lwhsuPlurk 上提到最近 *BSD 都在出新版,發現不只是 NetBSDOpenBSD,連 DragonFlyBSD 最近也出新版,而下禮拜 FreeBSD 7.2 也要 release... (不知道會 delay 多久)

Update:FreeBSD 7.2-RELEASE 釋出了。

可能要玩 NetBSD,如果他的 lock mechanism 改的比 FreeBSD 好的話...

FreeBSD 下的 policy routing

昨天弄了一整個下午,差點被搞死...

FreeBSD 下想要依照 source ip 而決定 next hop 可以用 ipfw 或是 pf 達成。

ipfw 的設定會像這樣:

ipfw fwd 192.168.1.1 ip from 192.168.1.0/24 to not 192.168.1.0/24

而 pf 的設定會像這樣:

pass out quick route-to (em0 192.168.1.1) from 192.168.1.0/24 to ! 192.168.1.0/24 no state

最後面的 no state 很重要,找了一下午就是這個關鍵字而已 XD

會使用 pf 是因為現在都跑 FreeBSD amd64,用 FreeBSD 官方的 binary 都已經包含 SSE2 instructions,所以系統都用 freebsd-update 在管理。官方的 binary 並沒有把 ipfw 的 IPFIREWALL_FORWARD 編進去,所以不能用 ipfw fwd,花了一個下午才搞懂 pf 要怎麼設定...

記起來,以後應該會 google 到自己的文章...

換上 Firefox 3.5beta4

順著第一次推出 3.5beta 時抓下來玩,穩定性似乎還可以 (目前還沒遇過 crash),要再多跑一陣子才會比較準。

大概是我的 extensions 裝太多了,感覺速度與 3.0 沒有差異。不過在 heavy loading 時 (故意同時開很多新的網頁) 比 3.0 順暢不少。

另外記事升級後發現我自己的 blog 有使用 css3 的陰影效果 (text-shadow),應該是很久前自己改的...

Percona 的 PERFORMANCE IS EVERYTHING

Percona 在 4/22、4/23 也辦了一場「PERFORMANCE IS EVERYTHING」,地點與 MySQL Conference & Expo 2009 一樣,而且還強調不需要報名費用 XD

Percona 對 Sun/MySQL 不滿其實也不是一天兩天的事情了,選相同的日期與地點 (同一棟大樓) 還蠻感覺得出來敵意...

拿兩邊的題目來看,其實 Percona 場的題目比起 Sun/MySQL 辦的好多了。很多人對底層並沒有興趣,而是對「實用方法」有興趣。而且 Percona 的場子也看得出來各大 high-traffic site 的大頭都蠻捧場的 (有些人大概是不想得罪,兩邊都有講),題目也廣多了。

等講者把 Percona 場的投影片放出來後再來看看內容...

MySQL Conference & Expo 2009

MySQL Conference & Expo 2009 已經結束了,有蠻多講者已經把投影片交給大會,由大會公佈在網頁上,有興趣的人可以在裡面翻有趣的題材:「Speaker Presentation Files: MySQL Conference & Expo 2009」。

由於是 Sun 辦的會議,有些檔案會是 ODP 格式 (需要用 OpenOffice Impress 開)。

有些主題還蠻有趣的,這個週末應該會翻翻...

下面是我推薦的清單,有機會就會增加:

WordPress 的 exporter

WordPress 的 exporter 做的實在是很沒誠意...

WordPress 的 exporter 是 XML 格式,說更實際一點是 RSS 2.0 + 自訂的 namespace。不過 WordPress 實際上是自己把欄位內容 echo 出來,於是就有一卡車欄位沒有 escape...

首先是踩到「Exporter does not escape url」這個地雷,沒有對 <wp:comment_author_url></wp:comment_author_url> 這個欄位 escape,於是當 url 帶有 & 時就... *boom*

幫 WordPress patch 後又遇到另外一個問題:「wp:meta_value does not escape correctly」,這次換成 <wp:meta_value></wp:meta_value> 沒有 escape...

到底是怎樣啊... 我猜還會再中某些欄位地雷 \_/

XtraBackup:線上備份 InnoDB 的好東西

XtraBackupPercona 開發的工具,可以線上備份 InnoDB 的資料,而且不太會影響效能,速度比起 mysqldump 快很多。

以往想要線上備份 InnoDB database,會用 InnoDB 所提供的 InnoDB Hot Backup,但這套軟體不是 open source software,除此之外要收費。

Percona 前陣子開始發展 open source 的版本,軟體叫做 XtraBackup,目前寫這篇文章時的最新版是 0.5-beta。

剛剛試著從一台 production database (比較小台,3GB) 的備份,看起來相當順暢:

sudo xtrabackup --defaults-file=/srv/mysql/var/my.cnf --backup --target-dir=/tmp/backup --datadir=/srv/mysql/var

要注意的是參數的順序是有差異的,--defaults-file 一定要在最前面。另外 my.cnf 要記得指定,不然就是把 my.cnf 裡面所有設定值寫在命令列。

--backup 不需要解釋,--target-dir--datadir 也應該很好懂。

直接輸入 xtrabackup 還有不少參數可以調整,像是 --throttle 這種參數可以限制 I/O 速度 (沒有實際用過),有了這個參數,在比較忙碌的 database 上不用擔心過載...