Filesystems
通過強制解除安裝模擬功率損失?
我想測試高負載下掉電後RDBM的災難恢復。
我的想法是在新的掛載點下掛載數據目錄,然後
umount -f
在載入期間執行並調查文件的結果/狀態。我的期望是,對於非持久配置,數據應該是不一致的,否則是一致的。
有沒有人認為這是個好主意,也許還有其他相關的提示(例如,哪個文件系統更好用或者我的期望無關緊要,那麼為什麼)?
大概你實際上是在移除電源。
umount -f
還不足以模擬許多失敗。在 Linux 上,umount(2) 解釋說 force 僅支持網路文件系統。
MNT_FORCE (since Linux 2.1.116) Ask the filesystem to abort pending requests before attempting the unmount. This may allow the unmount to complete without waiting for an inaccessible server, but could cause data loss. If, after aborting requests, some processes still have active references to the filesystem, the unmount will still fail. As at Linux 4.12, MNT_FORCE is supported only on the following filesystems: 9p (since Linux 2.6.16), ceph (since Linux 2.6.34), cifs (since Linux 2.6.12), fuse (since Linux 2.6.16), lustre (since Linux 3.11), and NFS (since Linux 2.1.116).
這裡有一些關於如何對數據庫系統做非常討厭的事情的更多想法:
- 物理拔下主機的所有電源。任何程序和共享記憶體都會非常不優雅地消失。
- 使用精簡配置過度使用儲存並將其執行到 100%。即使儲存在這種情況下做了一些正常的事情,如果它的捲在寫入過程中只讀取,DBMS 可能會不高興。
- 拔下所有通往 SAN 的路徑,以模擬並非如此的“非破壞性”儲存維護。
- 找到一個寫入的程序並向其發送 SIGKILL 信號或等效信號。
- 使作業系統崩潰。例如,在 Linux 上
echo 'c' > /proc/sysrq-trigger
測試後剩餘數據的狀態取決於儲存和 DBMS。要麼有一本他們可以重播的日記,要麼他們沒有。您可能想在文件系統上執行 fsck 或等效操作。如果數據庫可以從日誌或其他任何東西中恢復到一致的時間點,您可能想要這樣做。如果您有 DBMS 的完整性檢查器,請將其用作完整性檢查。
希望您已經對備份進行了恢復測試,以防萬一。不要僅僅因為某些東西聲稱崩潰恢復,就認為它適用於所有情況。