UbuntuでLVMスナップショットをバックアップ/復元ポイントとして設定する


29

UbuntuでLVMスナップショットをバックアップ/復元ポイントとして設定します。

どうして?

さて、私が見ているように、Linuxの優れた有用性のすべてにおいて、最大の欠点はアプリのインストール方法が混在していることです。すべてのdllは1つのディレクトリに移動します。すべての構成ファイルを別のものに。そして、バイナリも束になります。はい、Windowsはほぼ同じ方法で動作しますが、Linuxにインストールされたシステム/サーバーソフトウェアの性質上、インストールされたソフトウェアの大部分はいつでも約95%しか成熟しておらず、月に2回システムを台無しにします非常に可能性が高い

もちろん、各インストールの前後にシステムをバックアップできますが、それには数百万年かかります。システムのバックアップ(データ/ファイルのバックアップとは対照的に)では、コンピューターの電源を切り、何らかの形式のブータブルライブCDとバックアップメディアを使用する必要があります。また、ドライブの空き容量が15%を超える場合、最新のハードウェアでもバックアップに時間がかかる場合があります。

それで、どうすればこれを行うことができますか?


3
これは質問ではありません...また、あなたはそれほど難しく見えなかったと思います。「ubuntu lvm snapshot」のクイックグーグルで、最初に表示されるのはwiki.ubuntu.com/Lvm
psusi

1
関係ありません...あなたはそれを読みましたか?ここであなたが言ったことすべてを網羅しています。
psusi

5
もちろん、あなたができる質問をし、その後、それを自分で答え-しかし、このサイトはQ&Aとして動作していることに注意してください-フリーフォームのチュートリアルのためのものではありません。
Guntbert 14

3
それが問題だ。AskUbuntuはチュートリアルを提供していますが、簡単な方法を見つけることができませんでした。そして、私は自分のハードワークを利益を得られる人と共有したかったので、ここに投稿することにしました。
こする

4
これをQ&Aに分割できるように再開する投票
-muru

回答:


11

代替手段-LVMスナップショット -LVMスナップショットについては、こちらで読むことができます:http : //www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

要するに、スナップショットは、ハードディスク上の使用済みセクターをフリーズする方法であり、スナップショットボリュームと呼ばれるハードディスクの予約部分に変更/削除/追加を書き込むようシステムに指示するため、変更を保持/破棄する決定を延期しますスナップショットボリューム領域が提供する限り、将来のある時点までドライブ上で。そのため、変更をロールバックする(または保持する)ことを決定したら、1行でそれを行うことができます。

最初は複雑に思えるかもしれませんが、最初の努力の後、スナップショットメカニズムを使用するために必要なのは2行のスクリプトだけです(ダウンロードが提供されます!)

保証-以下の指示に対してこれまでに与えられた保証はありません。自己責任!

どうやって?

事前に設定されたボリュームグループがない場合は、おそらく新鮮なクリーンなUbuntuをインストールする必要があります。次に、システムを初めて正しく設定するためにある程度の努力をする必要がありますが、この時点からスナップショットは楽になります。簡単に言うと、事前に構成されたスクリプトを使用する1つのライナーコマンドです。

  1. UbuntuのライブCDから起動します(まだインストールされていません。ライブCDのみ)。
  2. アクセサリを開く->ターミナル
  3. ハードドライブをクリアします!この段階を実行する前に、重要なものはすべてバックアップしてください。

    まず、既存のパーティションを削除しましょう。

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. ブートパーティションを作成し、残りのドライブを他のパーティションとして作成します

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    変更が適切に機能したことを確認するには、次を実行します。

    # fdisk --list
    

    次のようなものが得られるはずです。

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. 以前のボリュームグループ/論理ボリュームを削除します。

    # lvdisplay 
    

    システム上にある論理ボリュームを表示します

    # lvremove <existing_logical_volume_name>
    

    このインストールを妨げる可能性のあるボリュームインストールを削除する必要がある場合。

    # vgdisplay 
    

    システム上の既存のボリュームグループを表示します

    # vgremove <existing_volume_group>
    

    ボリュームグループと同じです。

  6. ボリュームグループ「vgsnap」を作成する

    # vgcreate vgsnap /dev/sda2
    

    結果は次のとおりです。

      Volume group "vgsnap" successfully created
    
  7. 論理ボリュームを作成する

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    デバイスの100%から始まるルート論理ボリューム。

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    これにより、スワップボリュームとスナップショットボリュームの30Gがオフになります。もちろん、スワップ/スナップショットにはより小さいサイズを選択できます。

    > 'y'
      for the warning shown.
    

    そして、スワップボリュームを作成します。

    # lvcreate --size 15G --name lvswap vgsnap
    

    注:現在、15Gの未使用のドライブ領域を残し、将来のスナップショット用に予約しています。

  8. Ubuntuのインストール

    ターミナルを閉じて、インストーラーを起動します。

    [Use LVM ...]を選択します(ディスク全体の暗号化を有効にすることもできますが、テストしませんでした。)

    「その他」を選択して、続行を押します。この段階で、/ dev / mapper / ...ボリュームの多くが定義されています。これらの一部は自動生成されます(lvsnap- *)-現時点では無視できます。

    選択:/ dev / mapper / vgsnap-lvroot volume フォーマットとして「ext4」を選択し、「/」としてマウントします

    / dev / mapper / vgsnap-lvswap volumeを選択し、「スワップ領域」を選択します

    暗号化されたドライブを作成する場合(スナップショットで動作するかどうかはわかりませんか?)、おそらく/ dev / sda2を選択し、「暗号化するボリューム」をマークする必要があります。でも、テストしませんでした。

    注:未使用の15Gは、スナップショットボリューム用に空いています。

    選択:/ dev / sda1パーティション。「ext2」としてフォーマットし、「/ boot」としてマウントします

    以下- ブートとして/ dev / sda1パーティションを選択します

    インストール!

スナップショットを使用する

次の手順は、任意の時点でスナップショットを使用する方法を示しています。

  1. スナップショットのマウント:

    スナップショットボリュームを作成する

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    マウントディレクトリを作成する

    # mkdir /mnt/vgsnap-lvsnap
    

    スナップショットを読み取り専用マウントとしてマウントします

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    スナップショットはオンです!

    この時点で、システムを台無しにしたり、ベータ版ドライバーをインストールしたりすることもできます(いいえ!それは不適切です)。

    これ以降、いつでも(スナップショットサイズが提供する限り)前の状態に戻ることができます。または、新しい外観に満足している場合は、それを保持します。

  2. 自動スナップショットボリュームの空きディスク領域の監視:ここで提供されるスクリプトの調整バージョンを使用:http : //blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ monitor_snapshotスクリプト を作成しました。

    使用/インストール方法は?-上記のリンクとほぼ同じ:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    初めて実行する前に、電子メールアドレス(通知の送信先など)などの値を編集する方が適切です。適切に構成されている場合、cronデーモンはX時間/日ごとにスクリプトを実行します-あなたが決めるように-そしてスナップショットが一杯になりそうになったら通知します。

    スクリプトをテストするには、次を実行します。

    # sh /etc/cron.hourly/monitor_snapshot
    

    スナップショットの空き領域の割合(数値)を出力します。

    重要!テスト/インストールが完了したら-ロールバックまたは変更を保持して-スナップショットをアンマウントします!

  3. 変更のロールバック:(rollback_snapshotスクリプトを参照してください。次の手順が記載されています。ドキュメントの最後にリンクがあります)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    これによりスナップショットもアンマウントされますが、変更はすべて破棄されます。また、次のアクティベーションのみが元に戻されることを示唆する警告が表示されます。

    # reboot
    

    注:マージをスキップした場合、スナップショットをマウント解除すると、変更がコミットされます。

  4. 変更のコミット-スナップショットのマウント解除:(commit_snapshotスクリプトを参照してください。その中に次の指示があります-ドキュメントの最後にリンクがあります)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. スナップショットの再マウント:(次の手順を含む再マウントスクリプトを参照してください-ドキュメントの最後にリンク)

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    monitor_snapshotをホームディレクトリに保存した場合、復元できます。

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

それはすべての人々です! 次の手順は、禁煙者専用です;)

  1. スナップショットボリュームの破棄(不要になった場合)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (ルートパーティションまたはスワップのサイズを変更して、スワップ用に予約されている欠落している15Gを占有することもできます)

  2. ボリュームグループの破棄-ボリュームグループのボリュームを削除することによってのみ可能です。これは、おそらくOSインストールを削除することを意味します。しかし、もちろん、ボリュームグループを削除する必要はありません...

    ボリュームグループを削除するには:

    # vgremove vgsnap
    

重要な注意点!-fdiskをフォーマット/実行し、すべてのパーティションを削除しても、ボリュームもグループも削除されません。これらはドライブの別の部分に書き込まれているためです。


これらの詳細な指示をありがとう...わあ。
アドリアーノルーカス

2

を使用してバックアップを行うためのcronjobを作成する lvcreate -s -L <size> -n <snapshot_name> <volume_name>

ここで、ボリューム名は、スナップショットを取得するボリュームの名前です。詳細については、このチュートリアルをご覧ください。


1
素敵なガイド!ただし、バックアップメディアを使用せずにバックアップする手段を提供するという私の意図に注意してください。遅延バックアップの形式として。昔はノートンゴーバックとWindows 2000でこれが命の恩人でした:)私は作業したシステムを本当に混乱させていました。 !バックアップはおそらく実サーバーでの正しい方法ですが、VMWare / VirtualBox(外部からスナップショットを提供する)に置かれていないワークステーションでは、スナップショットが最適だと思います。
こする
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.