본문 바로가기

Computer/OS

AIX 백업 - Mksysb의 모든것

Mksysb 모든것

시스템백업을 다음의 8가지로 나누어 설명하겠습니다.

1. MKSYSB를 사용하는 이유

2. MKSYSB의 네 가지 IMAGE

3. MKSYSB 생성전 확인 사항

4. 생성하기

TAPE으로 생성

파일로 생성

5. 확인하기

데이터 확인

부팅 여부 확인

6. MKSYSB 복원

7. 복원 메뉴

8. MKSYSB TAPE에서 개별 파일 복원

mksysb를 사용하는 이유

IBM AIX UNIX와 다른 UNIX가 구별되는 주요 차이점은 ODM(object database manager)과 LVM (logical volume manager)에 있습니다.

cpio나 tar를 사용해서 모든 시스템 파일을 백업받았더라도 그것들을 사용해서는 시스템 복구가 불가능한 이유가 바로 (다수의 Volume Group을 사용할 수 있다는 점 외에도) ODM과 LVM에 있습니다. 만약, 그 백업파일을 구동중인 시스템에 내린다면 시스템은 이상을 감지하고 정지될 수도 있습니다.

Tape으로 mksysb를 만들면 시스템의 ODM과 LVM를 포함한 부팅가능한 Tape을 만들 수 있습니다.

mksysb의 네 가지 image

+--------------+----------------+---------------+----------------+

| Bosboot | Mkinsttape | Dummy TOC | rootvg |

| Image | Image | Image | data |

+--------------+----------------+---------------+----------------+

| <----------------- Block size 512 ----------->| Blksz defined |

| | by the device |

+-----------------------------------------------+----------------+

Image #1: bosboot image

내용 : 시스템의 커널과 (사용자가 이 tape으로 부팅할 수 있도록 하기 위한) 드라이버

blocksize: 512

format: raw image

files: kernel device drivers

Image #2: mkinsttape image

내용 : maintenance로 부팅할 때 필요한, RAM에 올려놓을 파일들

blocksize: 512

format: backbyname

files: ./image.data, ./tapeblksz, ./bosinst.data and commands

Image #3: dummy image

내용 : "dummy toc"라는 단어를 포함하고 있는 하나의 파일

BOS install tape이 갖고 있는 image 수와 mksysb tape의 image 수를 같게 하기 위해서 필요한 image입니다.

Image #4: rootvg image

내용 : rootvg의 mount되어 있는 JFS 파일 시스템

blocksize: mksysb 실행시의 tape drive의 설정값에 따름

format: backbyname

files: rootvg, mounted JFS filesystems

경고 : device의 blocksize를 0로 하면 mksysb는 512bytes 단위로 image를 생성합니다. 이것으로 복구하면 기대하는 시간보다 5-10배의 시간이 걸립니다.

mksysb 생성전 확인 사항

1./tmp의 사용가능 크기가 적어도 12MB이어야 함

2.mksysb하기 전의 기록 필요 사항 :

시스템에 어떤 volume group이 있는지

각각의 volume group에 포함되어 있는 디스크가 무엇인지

각각의 디스크의 위치

#lsvg

#lsvg -p <vgname>

#lsdev -Cc disk

tape drive에 생성하기

mksysb tape에는 네 가지의 image가 있고 그 네 번째에 rootvg의 mount된 JFS 파일 시스템들이 저장됩니다. 부팅가능한 mksysb를 원한다면 시스템에 바로 붙어있는 tape drive가 있어야 합니다.

1. SMIT이용

a. 다음 명령 실행

#smit mksysb

b. 다이얼로그 박스 나타남

사용할 device명 입력. Enter 입력. 하나 이상의 tape이 필요하면 tape을 바꾸라는 메시지가

나타남.

Backup DEVICE or FILE [/dev/rmt#]

Create MAP files? no

EXCLUDE files? no

List files as they are backed up? no

Generate new /image.data file? yes

EXPAND /tmp if needed? yes

Disable software packing of backup? no

Number of BLOCKS to write in a single output [ ]

(Leave blank to use a system default)

2.명령이용

#mksysb -i /dev/rmt# 2>/tmp/mksysb.err

파일로 mksysb 생성하기

생성된 파일로 부팅할 수 없습니다. rootvg의 mount되어 있는 JFS 파일 시스템만이 저장됩니다.

1. SMIT 이용

부팅가능 tape을 만드는 방식과 동일. 단지, 다이얼로그 박스의 두 번째 항목값이 다름

a.다음 명령 실행

#smit mksysb

b.다이얼로그 박스 나타남.

Backup DEVICE or FILE [/path/file]

Number of BLOCKS to write in a single output [ ]

(Leave blank to use a system default)

2.명령 이용

#mksysb -i /path/file 2>/tmp/mksysb.err

확인하기

시스템백업이 문제없이 복원된다고 확인할 수 있는, 유일한 방법은 실제로 복원을 시키고 시스템을 구동해 보는 것입니다.

적어도 tape media에 의한 문제를 줄이기 위해 다음을 해 볼 수 있습니다.

데이터 확인

1.SMIT 이용

a.다음 명령을 실행합니다.

#smit lsmksysb

다이얼로그 박스가 다음과 같이 나타납니다.

DEVICE or FILE [/dev/rmt#]

Number of BLOCKS to read in a single input [ ]

(Leave blank to use a system default)

b.알맞는 값을 넣고 Enter를 누릅니다.

2.명령 이용

#tctl -f /dev/rmt# rewind

#restore -s4 -Tvqf /dev/rmt#.1 > /tmp/mksysb.log

부팅 확인

mksysb로 성공적인 부팅이 가능한지를 확인하는, 유일한 방법은 실제로 시스템을 다운시킨후 tape으로 부팅해보는 것입니다. 복원을 하실 필요는 없습니다.

경고 : /bosinst.data에서 control_flow 단락의 PROMPT 항목이 "no"로 되어 있으면 tape으로 부팅하면서 바로 복원에 들어갑니다. PROMPT의 설정이 어떻게 되어 있는지 모른다면 부팅진행중에 지정할 수 있습니다. console선택을 한 후 화면의 왼쪽 하단에 숫자가 교대되는 것이 보일 것입니다. 이 숫자가 나오면 바로 000를 입력하고 Enter를 누릅니다. 이렇게 하면 PROMPT값이 yes로 변경됩니다.

1.PROMPT를 확인합니다.

normal mode에서 다음을 실행합니다.

#chdev -l rmt# -a block_size=512

#tctl -f /dev/rmt# rewind

#cd /tmp

#restore -s2 -xvqf /dev/rmt#.1 ./bosinst.data

내려진 /tmp/bosinst.data 내용 중 control_flow단락의 PROMPT항목을 확인합니다.

2.SERVICE mode로 전환합니다.

a.시스템에 key가 있다면 service로 돌리고 key가 없다면 시스템 매뉴얼을 참조하여 service mode로 들어가도록 합니다.

b.mksysb tape을 넣습니다.

c.다음을 실행해 재부팅합니다.

#shutdown -Fr

3.tape으로부터 부팅합니다.

참고 : Multiprocessor 시스템인 경우, BUMP MENU라고 불리는 maintenanace 메뉴가 나옵니다. 이것은 하드웨어 메뉴입니다.

4."press F1 or 1 for Console"와 같은 내용이 나타납니다. 이 때, 그래픽 화면인 경우는 F1을, ASCII 화면인 경우는 1을 누르고 Enter를 누릅니다.

5.English를 사용하기 위해 1을 누릅니다.

6.Installation and Maintenance 메뉴가 나타납니다. 시스템이 성공적으로 부팅되었습니다.

7.key를 normal로 돌리거나 key가 없는 경우는 그에 알맞는 작업을 취하여 normal로 전화한 후 시스템을 재부팅합니다.

mksysb 복원

root volume group에 포함되어 있는 모든 physical volume들을 지정해 주어야 합니다. 특히, mirror를 한 경우, mirror된 모든 디스크들을 지정해 주어야 합니다. 그렇지 않으면 다음과 같은 에러가 나타납니다.

not enough physical volumes.

1.SERVICE mode로 부팅합니다.

a.시스템에 key가 있다면 service로 돌리고 key가 없다면 시스템 매뉴얼을 참조하여 service mode로 들어가도록 합니다.

b.mksysb tape을 넣습니다.

c.shutdown -Fr명령을 이용하거나 Reset 버튼을 두 번 눌러 재부팅합니다.

2.이제 시스템은 mksysb tape으로부터 부팅합니다.

시스템이 부팅되지 않는다면, mksysb tape을 제거하고 CD-ROM이나 tape으로 되어 있는 install media를 넣어 부팅합니다.

참고 : Multiprocessor 시스템인 경우, BUMP MENU라고 불리는 maintenanace 메뉴가 나옵니다. 이것은 하드웨어 메뉴입니다.

3."press F1 or 1 for Console"이 나타나면 그래픽 화면인 경우 F1을, ASCII화면인 경우 1을 누르고 Enter를 누릅니다.

4.English를 사용하기 위해 1을 누릅니다.

5.Installation and Maintenance 메뉴가 나타납니다. mksysb가 아닌 다른 media로 부팅을 하였다면 이제 mksysb tape을 넣습니다.

6.복원이 완료된 이후 normal mode로 전환합니다. key가 없는 경우는 별도 전환작업없이 tape만 제거합니다.

7.이제 시스템은 복원된 rootvg을 갖고 부팅이 됩니다.

참고 : rootvg외의 다른 volume group이 있다면 login prompt가 나오기 전에 그와 관련된 에러가 나올 수도 있으나 login prompt가 나온다면 무시하십시오.

참고 : 복원 시간은 시스템마다 차이가 있습니다. mksysb tape 작성시 blocksize를 0로 하지 않았다면, mksysb를 만드는 데 걸린 시간의 두 배정도가 걸립니다. 만약 tape drive의 blocksize가 0이었다면 mksysb는 512 block size로 만들어졌을 것입니다. 이런 경우 보통 복원시간보다 5-10배의 시간이 걸립니다.

8. 다른 volume group을 포함하고 있는 다른 디스크들이 있다면, 새 ODM에 import해야 할 필요가 있을 수도 있습니다.

a.새로 label이 부여된 hdisk#와 SCSI location ID를 맞추어 봅니다. 디스크들의 label이 변경되었을 수도 있습니다.

다음을 실행합니다.

#lsdev -Cc disk

b.각 volume group을 새 ODM에 import합니다.

#importvg -y vgname hdisk#

예를 들어, data"란 volume group이 있고 그것이 hdisk3와 hdisk4에 있다면 다음을 실행합니다.

#importvg -y data hdisk3

c.rootvg외 다흔 volume group을 활성화시킵니다.

#varyonvg vgname

d.ODM을 동기화시키고 모든 파일 시스템을 mount하기 위해 재부팅합니다.

#shutdown -Fr

참고 : 시스템을 재부팅하지 않고자 한다면 mount -a를 실행합니다. 모든 파일 시스템이 mount될 것입니다

하지만 ODM이 동기화되었다는 것을 확인하기 위해 가능한 빨리 재부팅을 해야 합니다.

e.login prompt가 나타납니다.

복원 메뉴

1.Installation and Maintenance 메뉴에서 (3)을 선택합니다.

1) Start Installation Now with Default Settings

2) Change/Show Installation Settings and Install

3) Start Maintenance Mode for System Recovery

2.Maintenance 메뉴에서 (4)를 선택합니다.

1) Access a Root Volume Group

2) Copy a System Dump to Removable Media

3) Access Advanced Maintenance Functions

4) Install from a System Backup

3.Tape Drive를 선택합니다.

Tape Drive Path Name

1. tape /scsi/8mm /dev/rmt#

4.사용언어를 선택합니다.

1) Type 1 and press Enter to have English during the install.

5.Installation and Maintenance 메뉴에서 (2)를 선택합니다.

1) Start Installation Now with Default Settings

2) Change/Show Installation Settings and Install

3) Start Maintenance Mode for System Recovery

6.System Backup Installation and Settings 메뉴에서 (1)를 선택합니다.

Setting: Current Choice(s):

1. Disk(s) where you want to install......... hdisk0

Use Maps.................................. No

2. Shrink File Systems....................... No

0. Install with the settings listed above.

7.설치하려는 디스크를 선택합니다. 그리고 (0)를 선택합니다.

Type one or more numbers for the disks to be used for installation and press Enter. The current choice is indicated by >>>.

To deselect a choice, type the corresponding number and press Enter. At least one bootable disk must be selected.

Choose the location by its SCSI ID.

Name Location Code Size (MB) VG Status Bootable

1. hdisk0 00-01-00-0,0 305 rootvg yes

2. hdisk1 00-01-00-1,0 400 rootvg yes

0. Continue with the choices indicated above

8.파일시스템의 저장공간을 최적화시켜 사용가능공간을 가능한 많이 잡고자 한다면 옵션3를 선택해 YES"로 지정합니다.

하지만 원래의 파일시스템 그대로 복구하려면 NO"로 지정합니다.

9.System Backup Installation and Settings에서 0를 선택합니다.

Setting: Current Choice(s):

1. Disk(s) where you want to install......... hdisk0

2. Use Maps.................................. No

3. Shrink File Systems....................... No

0. Install with the settings listed above.

10.다음과 같은 메시지가 나타납니다.

WARNING: All data on the selected disks will be destroyed. Do you wish to continue? "Y/N" Y를 선택합니다.

mksysb tape에서 개별 파일 내리기

1.mksysb tape에서 개별 파일이나 디렉토리를 복원하려면 네 번째 image의 blocksize를 알고 있어야 합니다.

다음을 실행하십시오.

#cd /tmp

#tctl -f /dev/rmt# rewind (# to be replaced by a number)

#chdev -l rmt# -a block_size=512

#restore -s2 -xqdvf /dev/rmt#.1 ./tapeblksz

#cat ./tapeblksz

결과로 나오는 값은 mksysb를 했을 때의 blocksize를 나타냅니다.

2.다음을 실행해 tape drive의 blocksize를 맞추어 줍니다.

#chdev -l rmt# -a block_size=[number in the ./tapeblksz file]

3.다음을 실행해 개별 파일을 복원시킵니다.

#cd / (원래 파일의 위치에 복원시킬 때)

#tctl -f /dev/rmt# rewind

#restore -s4 -xqdvf /dev/rmt#.1 ./dir/filename (한 파일일 때) 또는

#restore -s4 -xqdvf /dev/rmt#.1 ./dir (디렉토리일 때)

---------------------------------------------------------------------------------------------

3mksysb 실행시 다음의 에러가 나타나는 경우 해결 방법

ar: 0707-100 /lib/librpcsvc.a이(가) 없습니다.

strip: shr.o -- 0654-400 파일을 열 수 없습니다.

경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 0707-117 파일 shr.o에서 fopen 시스템 호출에 실패했습니다.

ar: 0707-100 /lib/libodm.a이(가) 없습니다.

strip: shr.o -- 0654-400 파일을 열 수 없습니다.

경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 0707-117 파일 shr.o에서 fopen 시스템 호출에 실패했습니다.

ar: 0707-100 /lib/liblvm.a이(가) 없습니다.

strip: shr.o -- 0654-400 파일을 열 수 없습니다.

경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 0707-117 파일 shr.o에서 fopen 시스템 호출에 실패했습니다.

ar: 0707-100 /lib/libcfg.a이(가) 없습니다.

strip: shr.o -- 0654-400 파일을 열 수 없습니다.

경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 0707-117 파일 shr.o에서 fopen 시스템 호출에 실패했습니다.

ar: 0707-100 /lib/libbsd.a이(가) 없습니다.

strip: shr.o -- 0654-400 파일을 열 수 없습니다.

경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 0707-117 파일 shr.o에서 fopen 시스템 호출에 실패했습니다.

ar: 0707-100 /lib/libsrc.a이(가) 없습니다.

strip: shr.o -- 0654-400 파일을 열 수 없습니다.

경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.

ar: 0707-117 파일 shr.o에서 fopen 시스템 호출에 실패했습니다.

0301-154 bosboot: proto 파일 /tmp/libcfg.a 누락

0512-016 mksysb: 부트 가능한 테이프 작성 시도 실패.

bosboot -d /dev/rmt0.1 -a 실패. 리턴코드 - 41

-----------------------------------------------------------------------------------------------

/usr/lib가 /lib에 링크되어 있지 않아서 생기는 에러입니다. 다음처럼 링크를 하십시오.

# ln -s /usr/lib /lib

# chown bin.bin /lib

-----------------------------------------------------------------------------------------------

4일부 파일 시스템만 시스템백업을 받는 방법

-----------------------------------------------------------------------------------------------

두 가지 방법이 있습니다.

1. /image.data를 수정하는 방법

mksysb로 시스템백업을 받는 경우 /image.data에 있는 파일 시스템 정보를 기준으로 백업을 받습니다. 따라서 일부 파일 시스템만을 백업받으려 한다면 /image.data를 수정함으로써 가능합니다.

/image.data 파일을 만듭니다.

#mkszfile

/image.data에서 lv_data"와 fs_data"부분에서 불필요한 파일 시스템 설정부분을 제거합니다.

시스템백업을 받을 때 mksysb를 -i옵션 없이 실행합니다.

#mksysb -f /dev/rmt0

2. mksysb에서 -e 옵션을 사용하는 방법

/etc/exclude.rootvg 파일에 불필요한 파일시스템을 다음처럼 첨가합니다.

#cat > /etc/exclude.rootvg

/server/

^D

시스템백업을 받을 때 mksysb를 -e 옵션과 함께 실행합니다.

#mksysb -i -e

 

출처 - http://blog.naver.com/bat1000/40033803831