物理サーバをOpenStackに移す(リストア編その1)
OpenStackへのリストアは少々複雑で、
の2段階が必要。
まずは 1. isoイメージからインスタンスを作成し、新規作成したボリュームを/dev/vda として接続して、ボリュームへリストアする
をやっていく。
なお、この項目は以下のQiita記事をかなり踏襲している部分があるため、示しておく。 qiita.com
ボリュームへのリストア手順は以下の通り。
1-1. ISOファイルをイメージとしてアップロードする 1-2. フレーバーを用意する 1-3. ISOファイルとフレーバーからインスタンスを起動する 1-4. ボリュームを作成し、起動したインスタンスに/var/vdaとして接続する 1-5. コンソールからボリュームのパーティションを切って、各パーティションをフォーマットする 1-6. mondorestoreコマンドでリストアを実施する
1-1. isoファイルをイメージとしてアップロードする 自社環境ではGUIでアップロードしようとするとタイムアウトになるようなのでCLIで実施した。
$ openstack image create "servername_iso" --disk-format iso --file ./servername-20180919-1.iso --private --container-format bare
1-2. 必要ならば、物理サーバに近いスペックのフレーバーを用意する。 ※容量はまったく同じものを用意する必要はなく、実使用量以上のパーティションを切れればOK
$ openstack flavor create --vcpus 4 --ram 16384 --disk 160 --private make_flavor
1-3. ISOファイルとフレーバーからインスタンスを起動する
nyah上から インスタンス
→ インスタンスの起動
で新規インスタンスを作成する。一時的に作成し、後で削除するものなので、あまり神経質に設定する必要はない。
タブ | 設定値 | 設定値 |
---|---|---|
詳細 | Instance Name | (わかりやすい名前) |
- | アベイラビリティゾーン | ボリュームが接続できるゾーン |
- | count | 1 |
ソース | ブートソース | イメージ |
- | Allocated | mail003_iso |
フレーバー | Allocated | 1-2で作成したフレーバー(isoイメージ分の容量があれば良いかも) |
そのほか | 設定値 | たぶんデフォルトでよい |
設定後、 インスタンスの起動
を実行したら、インスタンスが立ち上がる。コンソール画面を開いて、expert
を入力し、実行する。
1-4. ボリュームを作成し、起動したインスタンスに/var/vdaとして接続する
CLIでコマンドを入力してボリュームを作成する。(GUIでもよい) ※ボリュームはGiBで、フレーバーはGBだから、ボリュームの容量を小さくしないとリストアした際にエラーになる 目安 フレーバ100GB ≒ ボリューム96GB
$ openstack volume create --size 96 --bootable tmp_volume
ボリュームを起動したインスタンスに接続する。
$ openstack server add volume mail003_tmp tmp_volume --device /dev/vda
1-5. コンソールからボリュームのパーティションを切って、各パーティションをフォーマットする またコンソール画面から操作する。以下のコマンドを実行してfdiskを起動する。
$ fdisk /dev/vda
するとfdiskの対話画面になるので、バックアップサーバと似たサイズになるよう、パーティションを切っていく。
パーティション作成コマンド詳細
n(新しくパーティションを作る) p(primary partition) 1(Partition 1) <enter>(First cylinder:1) 2048(Last cylinder) n(新しくパーティションを作る) p(primary partition) 2(Partition 2) <enter>(First cylinder:2049) 43006(Last cylinder) n(新しくパーティションを作る) p(primary partition) 3(Partition 3) <enter>(First cylinder:43007) 45088(Last cylinder) n(新しくパーティションを作る) e(extended) <enter>(First cylinder:45089) 278412(Last cylinder) n(新しくパーティションを作る) <enter>(First cylinder:45089) <enter>(Last cylinder:278412) t(パーティションシステムIDを変更する) 3(Partition 3) 82(Linux swap / Solaris) p(現在のパーティション状態を確認) w(書き込んで終了)
パーティション切ったあとはフォーマットしましょう
# mkfs.ext4 /dev/vda1 # mkfs.ext4 /dev/vda2 # mkfs.ext4 /dev/vda5 # mkswap /dev/vda3
1-6. mondorestoreコマンドでリストアを実施する
- モードは
Interactively
- 読み込みデバイスは
DVD disks
- Editing mountlistは
sda
をvda
に修正 - Are you sure you want to save your mountlist and continue? →
Yes
- Do you want to erase and partition your hard drives? →
No
- Do you want to format your hard drives? →
No
- Do you want me to restore all of your data? →
Yes
- Initialize the boot loader? →
Yes
- You will now be able to regenerate your initrd. →
No
- Did you change the mountlist or cloned the system? →
Yes
- Please confirm/enter the boot device. →
/dev/vda
- fstabは
UUID=
を/dev/vdaX
に修正 - mtabは
/dev/sdaX
を/dev/vdaX
に修正 - grub.confは
root=UUID=〜
をroot=/dev/vda2
に修正 - device.mapはそのまま
- Label/Identify your ext2/ext3/ext4 partitions if necessary? →
Yes
終わったら reboot
させた後にGUI上から インスタンスの停止
をさせる