我在我的家庭伺服器(我自己的、家庭成員的和客戶的)上經營多個電子商務網站。我使用的是較舊的 Dell Dimension 4600,運行 Ubuntu 12.04 lts。電腦沒有顯示任何即將發生故障的跡象,但由於它很舊,我想對其進行良好的備份,以防發生任何情況。我需要能夠在伺服器宕機後的幾天內將資料恢復到新伺服器,這是使用 Clonezilla 之類的工具的最佳方法嗎?或者應該有更好的方法來做到這一點嗎?
更新
我不需要網站在執行此操作時處於活動狀態,並且我目前擁有大約 8Gb 的資料。對於我想要的東西來說,一點複製似乎是一個好主意,即進行備份,然後如果發生任何情況,能夠插入備份磁碟並繼續。磁碟佈局只有一張磁碟,一個80GB的大分割區。是的,我知道這不是最好的,當我安裝作業系統並最初設定它時,我對 Linux、Ubuntu、Web 伺服器以及幾乎所有內容都是全新的。所以也沒有LVM
答案1
如果網站不需要在您執行此操作時處於活動狀態,則有很多解決方案,最簡單的方法是確保磁碟以唯讀方式安裝(例如透過使用啟動磁碟)並從 1 個磁碟進行位元複製到另一個。然後,如果出現問題,您只需將備份磁碟放入,打開伺服器即可離開。
如果網站在進行複製時需要保持活動狀態,問題會更加複雜。在 Linux 下處理備份的一個好方法是使用 rsnapshot 之類的東西來安排增量備份(但在您的情況下 rsync 可能更容易)。如果您必須進行恢復,則需要先重建伺服器,然後複製最新的快照。
您沒有指出要備份的資料量、變更頻率或磁碟佈局。這兩件事對於提出備份解決方案都很有用。如果您正在建置新系統(或在建置原始系統時有先見之明),那麼在 LVM 上建置檔案系統,然後拍攝 LVM 快照並進行備份通常很有用。這意味著無需停機,您可以在某個時間點製作[大部分]檔案系統的精確副本。當然,它假設您使用 LVM。
同樣,如果您的作業系統和應用程式之間有很好的分離,您可能希望從 Ubuntu 12.04 的基本安裝開始,然後僅增量備份應用程式。您可能還想透過轉儲資料庫來以不同於 Web 檔案的方式處理資料庫。類似地,tar(有時在塊設備上)對於完整的壓縮備份很有用,但是在備份塊設備時請注意,如果不小心,塊設備備份期間的文件更改可能會帶來很大的影響。
不幸的是,很難比這更具體,因為備份在某種程度上是特定於系統的。
答案2
對於這種情況,最好的方法可能是擁有另一個可以同步資料的伺服器。購買 VPS 並同步您的程式碼、資料庫和配置。我剛剛檢查了我使用的提供商,您可以每年花費 20 美元獲得具有 20GB 空間、512MB RAM、1.5TB 傳輸和 2 個 IP 的 VPS。規格增加一倍,每年 40 美元。花生。如果你不喜歡討價還價,你可以使用 Amazon Cloud 或 Slicehost,但我認為你是在浪費錢。
當您進行程式碼變更時,請使用 Dreamweaver(或您使用的任何工具)對您的「測試」網站進行變更。然後將您的數據推廣到「生產」站點。大多數 Web 開發 IDE 都能夠擁有「測試」伺服器和「產品」伺服器。你選哪個就是哪個。如果是我(我和一些客戶的情況非常接近),我會將 VPS 設定為生產站點,並使用家庭伺服器作為備份站點。
初始設定很簡單。您可以將所有已安裝的軟體包從 apt-get 轉儲到一個 txt 檔案中,並使用該檔案在您的 VPS 上安裝相同的軟體包。壓縮 Web 檔案、資料庫轉儲,然後您可以使用 SCP 將它們直接複製到其他伺服器。 (可能用簡短的 shell 腳本來完成這一切。)您可能也想複製大部分 /etc 。初始設定完成後,保持同步就很簡單了。
這有很多優點。
- 首先,你家裡停電了,但你的伺服器不會宕機。
- 其次,程式碼變更是透過 LAN 進行測試和開發的,因此速度很快,您無需等待透過慢速連接 (YMMV) 推送資料。
- 您遇到硬體故障,需要一周時間才能獲得零件 - 您的生產站點仍能正常運作。
- 您可以從任何地方透過 SSH 連接到您的測試伺服器,進行更改、測試它們,然後將它們推送到您的產品伺服器,同時將中斷降至最低。
- 您可以在與生產機器完全相同的配置上進行開發。因此,您不必使用 XAMPP 或其他一些開發環境,也不必擔心依賴項、結構或所有其他開發細微差別。
- 協同定位。如果您的生產電腦因某種原因而發生故障 (VPS),請將您的 DNS 重新指向家庭伺服器。將 DNS TTL 保持在 30 分鐘,這樣您的停機時間就會最短。
這就是我的建議。
而且,是的,我每年向人們收取1000 多美元的VPS,而我每年的費用約為40 美元……我還向他們推銷託管服務,這只是另一家提供者或我家裡機架上的另一個VPS。想要在網頁遊戲中賺錢,就得站在巨人的肩膀上。開發程式碼固然不錯,但剩餘收入才是最重要的,兄弟。低買。高價賣出。