TimeshiftでCentOS7のシステムバックアップを簡単に取得する

Timeshiftを使ってCentOS7(デスクトップ)のバックアップを取得

Macを使っている方であれば、Timeshiftと聞くとMacで使われているTime Machineというバックアップアプリケーションを思いつく方もいるのではないでしょうか?
Timeshiftもバックアップアプリケーションです。Timeshiftはシステムのバックアップに特化しているという点が大きく違います。

Timeshiftとは

TimeshiftはLinux系のOSでGUIを使用するバックアップツールです。Timeshiftのバックアップは、WindowsのバックアップツールやMacのTime MachineのようにSnapshot(似て非なるもの)を取得する形態のバックアップツールです。
Timeshiftはシステムのバックアップができます。/homeなどはバックアップできません。例えば、/home/rootとか、/home/centosはディレクトリだけがSnapshot内に含まれますが、それ以外のデータは含まれません。
その分、バックアップもリストアの容量が小さく、速く実行できるということでしょう。

ネット上を探してみるとubuntuの話はけっこうありますが、CentOSについては、あまり記事がなかったので、記事にしてみました。ubuntuデスクトップはユーザ数も多いですが、CentOSデスクトップを使っているユーザは、それほど多くないのかも知れません。

バックアップモードというかSnapshitタイプは2種類

  • RSYNC
    RSYNCモードは、rsyncを使用してSnapshotを取得します。BaseのSnapshotからの差分をSnapshotで取得するため、変更の無いデータはバックアップされず、1回のバックアップ容量を減らすことができ、バックアップ先のディスク容量を低減することができます。hard-linksを使用して変更内ファイルもフィイルマネージャから参照することができます。
    バックアップ先のファイルシステムに依存しませんが、システムと同等以上のサイズを持つディスクが必要になります。
  • BTRFS
    BTRFSモードは、BTRFSファイルシステムにSnapshotを書き込みます。BTRFSはSnapshotやコピーオンライト機能を持つファイルシステムで、耐障害性や修復性に強いとされています。
    RedhatはBTRFSをサポートしない予定を公表いているため、今後は不明な点があります。

Timeshiftをインストールする

Timeshiftをインストールするには、yumを使ってインストールする方法と、デスクトップ上でソフトウェアを追加する方法があります。いずれの方法でもepelリポジトリがインストールされている必要があります。

epelリポジトリをインストール

epelリポジトリを追加するには、端末を開いてyumコマンドでインストールします。GUIでもできるのかな。

  1. 端末を開きます
  2. epelをインストールします
  3. $ sudo yum install epel-release
    
  4. パスワード入力を求められたらrootのパスワードを入力します
    rootでログインすることや su – などでrootに移行することでもいいです
  5. インストールが完了したらリポジトリが追加されていることを確認します
    下記は参考まで
  6. $ yum repolist
    読み込んだプラグイン:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.iij.ad.jp
     * epel: del-mirrors.extreme-ix.org
     * extras: download.nus.edu.sg
     * updates: download.nus.edu.sg
    リポジトリー ID                     リポジトリー名                                            状態
    base/7/x86_64                       -7 - Base                                            9,911
    -sclo-rh/x86_64               -7 - SCLo rh                                         7,467
    -sclo-sclo/x86_64             -7 - SCLo sclo                                         521
    epel/x86_64                         Extra Packages for Enterprise  7 - x86_64            12,577
    extras/7/x86_64                     CentOS-7 - Extras                                            305
    updates/7/x86_64                    CentOS-7 - Updates                                           632
    

timeshiftをyumコマンド(CLI)でインストール

timeshiftをyumコマンドでインストールする場合

  1. 端末を開きます
  2. timeshiftを検索してみます
  3. $ yum search timeshift
    読み込んだプラグイン:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.iij.ad.jp
     * epel: del-mirrors.extreme-ix.org
     * extras: download.nus.edu.sg
     * updates: download.nus.edu.sg
    ====================================== N/S matched: timeshift ======================================
    timeshift.x86_64 : System restore tool for Linux
    
      Name and summary matches only, use "search all" for everything.
    
  4. timeshiftをインストールします
  5. $ sudo yum install timeshift
    [sudo] centos のパスワード:
    読み込んだプラグイン:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.iij.ad.jp
     * epel: del-mirrors.extreme-ix.org
     * extras: download.nus.edu.sg
     * updates: download.nus.edu.sg
    依存性の解決をしています
    --> トランザクションの確認を実行しています。
    ---> パッケージ timeshift.x86_64 0:18.1.1-4.el7 を インストール
    --> 依存性解決を終了しました。
    
    依存性を解決しました
    
    ====================================================================================================
     Package                 アーキテクチャー     バージョン                   リポジトリー        容量
    ====================================================================================================
    インストール中:
     timeshift               x86_64               18.1.1-4.el7                 epel               643 k
    
    トランザクションの要約
    ====================================================================================================
    インストール  1 パッケージ
    
    総ダウンロード容量: 643 k
    インストール容量: 2.7 M
    Is this ok [y/d/N]: N
    Exiting on user command
    Your transaction was saved, rerun it with:
     yum load-transaction /tmp/yum_save_tx.2018-05-30.13-22.U4D_Sp.yumtx
    [centos@centos7-gnm-103 ~]$ sudo yum list installed |grep timeshift
    [sudo] centos のパスワード:
    [centos@centos7-gnm-103 ~]$ sudo yum install timeshift
    読み込んだプラグイン:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.iij.ad.jp
     * epel: del-mirrors.extreme-ix.org
     * extras: download.nus.edu.sg
     * updates: download.nus.edu.sg
    依存性の解決をしています
    --> トランザクションの確認を実行しています。
    ---> パッケージ timeshift.x86_64 0:18.1.1-4.el7 を インストール
    --> 依存性解決を終了しました。
    
    依存性を解決しました
    
    ====================================================================================================
     Package                 アーキテクチャー     バージョン                   リポジトリー        容量
    ====================================================================================================
    インストール中:
     timeshift               x86_64               18.1.1-4.el7                 epel               643 k
    
    トランザクションの要約
    ====================================================================================================
    インストール  1 パッケージ
    
    総ダウンロード容量: 643 k
    インストール容量: 2.7 M
    Is this ok [y/d/N]: y
    Downloading packages:
    timeshift-18.1.1-4.el7.x86_64.rpm                                            | 643 kB  00:00:11
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      インストール中          : timeshift-18.1.1-4.el7.x86_64                                       1/1
      検証中                  : timeshift-18.1.1-4.el7.x86_64                                       1/1
    
    インストール:
      timeshift.x86_64 0:18.1.1-4.el7
    
    完了しました!
    
  6. デスクトップにログインします
  7. [アプリケーション]→[システムツール]→[timeshift]があることを確認します
  8. timeshift

timeshiftをGUIでインストール

timeshiftをGUIでインストールする場合

  1. [アプリケーション]→[システムツール]→[ソフトウェア]を選択します
  2. timeshift

  3. 入力項目にtimeshftと入力して、[Enter]キーを押します
  4. timeshift
    timeshift

  5. timeshiftが表示されていることを確認して[インストール]をクリックします
  6. timeshift

  7. [変更を適用]をクリックします
  8. timeshift

  9. インストール中
  10. timeshift

  11. インストールが完了すると[提供元]がinstalledに変わります
  12. timeshift

  13. [アプリケーション]→[システムツール]→[timeshift]があることを確認します
  14. timeshift

timeshiftを起動してみます

インストールが完了したらtimeshiftを起動してみましょう。初回の起動時ににはSetup Wizardが起動します。

  1. デスクトップにログインします
  2. [アプリケーション]→[システムツール]→[timeshift]を選択します
  3. timeshift

  4. 認証要求にrootパスワードを入力して[認証]をクリックします
  5. timeshift

  6. Snapshotタイプを選択して[Next]をクリックします
  7. timeshift
    timeshift

  8. RSYNCモードを選択して[Next]をクリックします
    Redhat8からはBTRFSをサポートしないとしていることから、ここではRYNCモードで設定します
  9. 当サイトの検証環境ではバックアップ先の容量不足が表示されていました
  10. timeshift

  11. [Settings]メニューをクリックします
  12. timeshift

  13. [Settings]GUIで[Location]をクリックします
  14. timeshift

  15. 今回は外付けDiskを選択して[Close]をクリックしました
    メッセージが変わっています
  16. timeshift
    timeshift

初回Snapshotを取得

GUI上に表示されているメッセージはSnapshotを手動かスケジュールで取得するように書かれています。
timeshift
ここでは、手動で初回のSnapshotを取得してみます。Snapshotを取得するには[Create]をクリックします。
timeshift
Snapshotを取得するとGUI上にリストが表示されます。
timeshift
Disk上のデータを確認すると次のようにリストされます。

/dev/sdb1         20G  6.5G   13G   35% /run/media/root/1c7c4749-a30a-40ae-8382-ba2d654c4bc4

Snapshotを取得するスケジュールを設定

Snapshotの取得は手動でもスケジュールでも実行ができます。スケジュール設定はGUIから設定します。

  1. timeshift

  2. [Settings]をクリックします
  3. timeshift

  4. [Schedule]をクリックします
  5. timeshift

  6. Schedule Levelsで実施したいタイミングを選択して[Close]をクリックします
    設定方法は実施間隔をチェックして保存するSnapshot数を選択します
    実行時間はSnapshotを取った時間になるようです
  7. timeshift

  8. 検証として毎時を選択した状態で実行されるとSnapshotが増えていきます

Timeshiftがシステムのバックアップに特化していて、/homeの下は除外されているため、業務使用ではなければ、そこまで頻繁にSnapshotを取得する必要はないのではないでしょうか。サーバでもなく、デスクトップということから考えればユーザデータ以外は、それほど更新することがないため、時々、手動でバックアップをする、もしくは月一とか週一でバックアップすればいいのではないかと思います。

Restoreする

バックアップした元の場所か、別のディスクにRestoreできます。

  1. [Restore]をクリックします
  2. timeshift

  3. リストア先を選択して[Next]をクリックします
  4. timeshift

  5. リストア確認の内容を確認して実行するならば[Next]をクリックします
  6. timeshift

  7. リストアが開始されると画面の状態が変わります
  8. timeshift

  9. リストアが完了すると再起動が行われます

で、リストア完了です。

Timeshiftをアンインストールする

timeshiftをGUIでインストールする場合

  1. [アプリケーション]→[システムツール]→[ソフトウェア]を選択します
  2. timeshift

  3. 入力項目にtimeshftと入力して、[Enter]キーを押します
  4. timeshift

  5. timeshiftを選択して[削除]をクリックします
  6. timeshift

  7. [変更を適用]をクリックします
  8. timeshift

  9. 関連するソフトウェアも同時にアンインストールするため[続行]をクリックします
  10. timeshift

  11. 認証要求にrootパスワードを入力後、[認証]をクリックします
  12. timeshift

  13. アンインストール後、[アプリケーション]→[システムツール]に[timeshift]がないことを確認します