This article is for users that change AWS region around the world.
  • Base
    • CentOS
  • Issue
    • The problem occurs because specific region does not have PV Instance.
  • Fixing
    • Resolved by copying the file with rsync after mounting PV Volume and HVM Volume.
  • info
    • Original PV Instance : orig_pv_instance
    • New HVM Instance : new_hvm_instance
    • Original PV volume : orig_pv_vol
    • Duplicated PV Volume : dup_pv_vol
    • New HVM Volume : new_hvm_vol

Migrating the EC2 Instance 

1. Duplication PV volume that want to move. (Using the Snapshot)

  1. Volumes menu -> Select the PV instance
  2. Right click -> Create Snapshot (pv_snap)
  3. Snapshots menu -> Select ‘pv_snap’ and Created Volume
  4. Setting up items and check availability zone
    1. AZ shall be the same as the place you want to move

2. Create HVM Instance such as PV instance OS

3. Duplication HVM volume using Step 1.

4. Copied PV Volume(dup_pv_vol) and HVM Volume(new_hvm_vol) attach to the PV Instance(orig_pv_instance)

  1. Volume menu -> Select the dup_pv_vol
  2. Right click -> Attach Volume
    1. Instance : orig_pv_instance
    2. Device : /dev/sdm (have your way)
  3. Volume menu -> Select the new_hvm_vol
  4. Right click -> Attach Volume
    1. Instance : orig_pv_instance
    2. Device : /dev/sdo (have your way)

5. PV Instance lauch and connect

6. Check volume size and Mount volumes

  1. Ensure PV and HVM Volumes attachment
    1. using $ fdisk -l
      1. If volume size not correct, follow step 2. 
      2. And when size is correct to follow next step.
    2. PV and HVM volumes mount.
      1. $ mount [pv volume dir] // Want to mount the pv directory.​
      2. $ mount [hvm volume dir] // Want to mount the hvm directory.​
  2. Modify volume size (pv and hvm)
    1. $ fdisk [volume]​ // Want to modify the volume.
      1. Command (m for help) : u
      2. Command (m for help) : p
      3. Command (m for help) : d
      4. Command (m for help) : n
      5. Command action : p
      6. Partition number (1-4) : 1
      7. First sector (17-41943039, default 17): 2048
      8. Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <Enter>
      9. Command (m for help) : p
      10. Command (m for help) : a
      11. Partition number (1-4) : 1
      12. Command (m for help) : w
    2. $ reboot
    3. mount check
      1. $ dh -h
      2. If not mounted, follow next step.
        1. ​$ fdisk -l
        2. $ mount [dir] // Want to mount the directory.​
    4. change to volume size.
      1. $ resize2fs [dir] // Want to change size the directory.

7. Copying Files using rsync

  • It takes long time.
  • Working instance must have all the authorities that to use at Source PV Volume.
  • Make use using the following script.
#pv_to_hvm.sh
#!/bin/sh
cd /HVM
cp /HVM/etc/fstab /root/
for dir in $(ls -l | awk '{print $NF}'| egrep -v 'boot|lib'); do rm -rf $dir; echo "deleted $dir"; done
rm -rf /HVM/lib64
cd /HVM/lib/
cp -rpf /HVM/lib/modules /root/modules_bkp/
rm -rf /HVM/lib/*
mkdir /HVM/lib/modules
chmod -w /HVM/lib/modules
cp -rpf /root/modules_bkp/ /HVM/lib/modules/
rm -rf /PV/boot
rsync -aAXHPv /PV/ /HVM/
rm -rf /HVM/.auto*
mv /HVM/etc/fstab /HVM/etc/bak_fstab
cp /root/fstab /HVM/etc/

8. Volume umount

  • Make sure you used the image files in the configuration file before you umount the Volume
    • open /HVM/boot/grub/grub.conf file in /HVM/lib/modules.
    • ​check images
      • title image file
      • kernel image file
      • initrd image file
  • PV and HVM volume amount

9. Stop the PV Instance(orig_pv_instance) and detach the HVM Volume(new_hvm_vol)

10. Detach root volume in the HVM Instance(new_hvm_instance)

11. Attach to the working HVM volume(new_hvm_volume) in HVM Instance(new_hvm_instance)

12. Launch HVM Instance(new_hvm_instance)


[NTP 서버 구축]

ntp 데몬 설치

ntp 사용을 위해 서버에 ntp 데몬을 설치
$ yum install -y ntp

ntp 포트 열기

ntp는 udp 123 포트를 사용하기 때문에 방화벽 혹은 Secutiry group 등에 udp123 포트를 열어주자
  • inbound 룰에 udp 123포트가 열려야한다. (source 0.0.0.0/0)
  • 인스턴스의 보안 그룹 규칙은 포트 123(NTP)에서 아웃바운드 UDP 트래픽을 허용해야 하고, 네트워크 ACL 규칙은 포트 123에서 인바운드와 아웃바운드 UDP 트래픽을 모두 허용해야 한다.

ntp 설정 파일 수정

  • Client 접근을 허용하기 위해 restrict 설정을 추가
    • restrict [client IP] mask 255.255.255.0 nomodify notrap
  • 사용할 외부 ntp 서버주소를 추가해준다
    • server [ntp서버 주소]
  • 로컬 타임 서버로 동작하기 위해 127.127.1.0 서버 추가
  • stratum 값을 설정해준다
    • 값이 너무 낮으면 (Server dropped: strata too high) 이런 에러가 발생한다.
    • 적당히 낮은 수치로 해주자.
    • 1 혹은 2는 외부 ntp 서버값이므로 사용하지 말자
아래 conf 파일은 설정 완료된 상태
$ vi /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 172.31.0.0/16 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
server kr.pool.ntp.org
server asia.pool.ntp.org
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 3

ntp daemon 부팅시 실행되게 서비스 등록, 시작

#centos 6
$ chkconfig ntpd on
$ service ntpd restart
#centos 7
$ systemctl enable ntpd
$ systemctl restart ntpd

ntp daemon 상태 확인

LOCAL이 표시되면 ntp 서버로 준비 된것임
$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
114.207.245.166 141.223.182.106 2 u 33 64 1 4.328 -5.253 0.000
202-65-114-202. 203.160.128.66 2 u 32 64 1 99.512 -1.440 0.000
*LOCAL(0) .LOCL. 3 l 31 64 1 0.000 0.000 0.000


[Client 설정] - ntp daemon

ntp 설정 파일 수정

다른 서버들은 모두 막아준다
$ vi /etc/ntp.conf
...
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
server [ ntp IP]
...

ntp daemon 부팅시 실행되게 서비스 등록, 시작

#centos 6
$ chkconfig ntpd on
$ service ntpd restart
#centos 7
$ systemctl enable ntpd
$ systemctl restart ntpd



[Client 설정] - cron.daily

!! Client 서버에서는 내부 ntp 서버와 cron으로 시간을 동기화 하기 때문에  ntpdaemon 서비스는 종료

cron.daily 사용

쉘 스크립트 생성
$ vi /etc/cron.daily/time-sync
#!/bin/bash
/usr/sbin/ntpdate [ ntp IP] && /sbin/clock -w # [ ntp IP] -> xxx.xxx.xxx.xxx,
실행 권한 부여
$ chmod 755 /etc/cron.daily/time-sync
매일 새벽 4시에 동기화 스크립트를 수행한다


[NTP daemon 사용]

ntp 데몬 설치

ntp 사용을 위해 서버에 ntp 데몬을 설치
$ yum install -y ntp

ntp 포트 열기

ntp는 udp 123 포트를 사용하기 때문에 방화벽 혹은 Secutiry group 등에 udp123 포트를 열어주자

ntp 설정 변경

$ vi /etc/ntp.conf
기존 시간 서버를 막고 한국 기준 ntp 서버들을 추가
...
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 3.kr.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
...

ntp daemon 부팅시 실행되게 서비스 등록, 시작

#centos 6
$ chkconfig ntpd on
$ service ntpd restart
#centos 7
$ systemctl enable ntpd
$ systemctl restart ntpd

ntp daemon 상태 확인

$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
send.mx.cdnetwo .INIT. 16 u - 256 0 0.000 0.000 0.000
li1440-241.memb .INIT. 16 u - 256 0 0.000 0.000 0.000
*LOCAL(0) .LOCL. 3 l - 64 377 0.000 0.000 0.000


[Crontab 사용]

ntpdate 설치

$ yum install -y ntpdate
crontab에 등록해서 사용자가 정하는 시간대에 동기화를 하도록 하자
$crontab -e
...
# 1
00 4 * * * ntpdate kr.pool.ntp.org


[cron.daily 사용]

쉘 스크립트를 생성해서 cron

쉘 스크립트 생성

$ vi /etc/time-sync.ntp
#!/bin/bash
/usr/sbin/ntpdate -b -s kr.pool.ntp.org && /sbin/clock -w

실행 권한 부여

$ chmod 755 time-sync.ntp
작성한 파일을 /etc/cron.daily/ 로 복사 (매일 새벽 4시에 동기화 스크립트를 수행한다)

[ntpdate 사용법] - 번외

ntpdate는 시간을 바로 동기화 시킬 때 사용하는 명령어로 생각하면됨

기본 사용법과 옵션들

ntp서버와 시간 동기화
$ ntpdate kr.pool.ntp.org
ntp서버와 강제 시간 동기화
  • ntpdate는 옵션(-b, -B)을 지정하지 않으면 현재 시스템 시간과 차이가 128ms 이상이면 settimeofday()을, 이내이면 adjtime()을 사용한다. 강제적으로 ntpdate -b 로 settimeofday()를, ntpdate -B로 adjtime()를 사용할 수 있다.
$ ntpdate -b kr.pool.ntp.org
$ ntpdate -B kr.pool.ntp.org
디버깅 모드
$ ntpdate -d kr.pool.ntp.org
udp 123포트를 사용못할때 다른포트를 사용해서 동기화
ntpdate -u kr.pool.ntp.org