//---------------------------------------------------------------------
// 목표
//---------------------------------------------------------------------
aws의 ec2 에 mysql 을 설치해서 사용중임.
mysql 의 데이타를 hardware encryption 지원하는 디스크로 이동하길 원함.
ec2 의 root volume 은 encryption 를 지원하지 않음.

그래서. 새로운 volume 을 만들고 (Encryption 옵션 체크)
이것을 ec2 에 attach 시켰음.
이제 root volume 에 있던 mysql 데이타를 새로운 volume 으로 이동시키면 됨.

기존 mysql 데이타 디렉토리를 새로운 volume 으로
링크시켜서. mysql 설정을 바꾸지 않고 적용함


//---------------------------------------------------------------------
// 절차
//---------------------------------------------------------------------
* mysql 중지시킨다
  $sudo service mysql stop


* mysql 이전할 디렉토리를 생성한다.
  $sudo /new_data/db/etc
  $sudo /new_data/db/lib
  $sudo /new_data/db/log

* mysql 데이타베이스 파일 이전
  (데이타파일, 로그파일, 설정파일)
  (기존의 mysql 관련디렉토리를 새로운 디렉토리와 bind 시켜서, 설정변경 없도록 함)
  $sudo mv /etc/mysql     /new_data/db/etc/
  $sudo mv /var/lib/mysql /new_data/db/lib/
  $sudo mv /var/log/mysql /new_data/db/log/

  $sudo mkdir /etc/mysql
  $sudo mkdir /var/lib/mysql
  $sudo mkdir /var/log/mysql

  $echo "/new_data/db/etc/mysql /etc/mysql     none bind" | sudo tee -a /etc/fstab
  $echo "/new_data/db/lib/mysql /var/lib/mysql none bind" | sudo tee -a /etc/fstab
  $echo "/new_data/db/log/mysql /var/log/mysql none bind" | sudo tee -a /etc/fstab

  $sudo mount /etc/mysql
  $sudo mount /var/lib/mysql
  $sudo mount /var/log/mysql


* mysql 설정파일은 변경할거 없음

* mysql 시작
  $sudo service mysql start


//---------------------------------------------------------------------
// 참고 명령어
//---------------------------------------------------------------------
* 디스크 상태 보는 명령어
$sudo fdisk -l

* 일시적인 mount 명령어
$sudo mount /dev/sdb1(장치명) /mnt(디렉토리명)

* mount 해제 명령어
$sudo amount /dev/sdb1(장치명)

* 파일복사 옵션
-r : 하위디렉토리도 같이 복사
-p : 원본파일의 모드, 소유자, 시간정보도 같이 복사


//---------------------------------------------------------------------
// 2016.07.07 추가
//---------------------------------------------------------------------
저렇게 해서 잘 사용하다가.
ec2 인스턴스를 중지 시킨후. 다시 시작하니. 인스턴스는 시작되는데.
부팅중 멈추어서 아무것도 할수 없음. 제기랄.
* ec2 콘솔에서 인스턴스의 스크린샷을 볼수 있음.
* Starting enable remaining boot-time encrypted block devices [OK] 이런 메세지 나오고 멈춤.
* 아래는 이 장애(?)를 처리한 절차임.
  - ec2 인스턴스 중지 (이것을 a 인스턴스라고 부르자)
  - root volume 을 detach 함.
  - 떼어낸 volume 을 다른 인스턴스에 붙인다 (이것을 b 인스턴스라고 부르자)
  - b 인스턴스에 ssh 로 접속해서. 새로 붙인 volume 을 mount 하고. 거기서 /etc/fstab 파일을 수정한다
   (기존에 mount 했던것 지움)
  - b 인스턴스에서 volume 을 detach 하고. 다시 a 인스턴스에 붙인다
   (장치명은 /dev/sda1 으로 해야. root volume 이 된다)
  - a 인스턴스 시작.
  - 휴~





반응형

'잡다한 자료' 카테고리의 다른 글

Google Analytics. Real Time Reporting API  (1) 2016.06.29
slack, dapulse 연동  (3) 2016.06.20
[번역] AWS_HIPAA_Compliance_Whitepaper  (0) 2016.03.14
GA. measurement protocol  (0) 2016.03.09
apache. ssl. 인증서  (1) 2016.02.01
Posted by 돌비
,