Transcript ZFSAdmin

ZFS Admin Guide

시스템 기술지원 팀
목차






TEST 환경
pool admin
 mirror pool admin
 stripe pool admin
 raidz pool admin
volume management
 zfs volume admin
 raw volume admin
snapshot admin
 snapshot create
 restore data from snapshot
OS disk mirroring
single boot from cdrom-drive : mount os disk
TEST 환경
os version : Sun OS 5.10 10/08
 internal disk : 36GB * 2EA
 disk format information

mirror pool admin

zpool create (mirror pool)
mirror pool admin

pool 의 정보 확인
mirror pool admin

mirror pool에 disk추가
pool의 타입을 반드시 명시해야 합니다.
그리고 장치를 두개 씩 추가시켜야 합니다.
mirror pool admin

mountpoint 변경
mirror pool admin

장애 시 Disk 교체
pool이 degrade 상태임을 확인.
mirror pool admin

장애 시 Disk 교체
장애 디스크를
새 디스크로 교체.
pool의 status 가
online(정상)임을 확인.
mirror pool admin

mirror pool 제거
stripe pool admin

zpool create (stripe pool)
타입을 명시하지 않으면 default로 stripe pool이 생성됩니다.
stripe pool admin

stripe pool 에 디스크 추가
디스크가 추가 된
것과 용량이 증가
한 것을 확인 할
수 있습니다.
raidz pool admin

zpool create (raidz pool)
raidz 타입은 riad5와 비슷한 타입으로 3개 이상의 디스크가 있어야
생성이 가능합니다.
raidz pool admin

raidz pool 정보 확인
zpool list 의 결과에 나타난 raidz의 용량과 df –h 의 결과에 나타난 용량이
다름을 확인 할 수 있습니다.
raidz pool admin

장애 시 Disk 교체
pool이 degrade된 것과 장애 디스크를 확인 할 수 있습니다.
raidz pool admin

장애 시 Disk 교체
장애 디스크와 교체될 디스크를 명시해 줍니다.
(명령어상에서 앞쪽이 장애 디스크)
raidz pool admin

I/O 사용률 모니터링
zfs volume admin

create zfs volume
볼륨이 생성된 것을
확인 할 수 있습니다.
pool의 전체 용량과
새로 만들어진 볼륨의
용량을 확인해보세요.
zfs volume admin

volume 정보 확인
zfs volume admin

quota 와 reservation
 quota는
volume이 최대로 증가할 수 있는 크기를 나
타냅니다. zfs는 logical volume의 개념이기 때문에
크기를 조절할 수가 있고, quota는 volume이 늘어날
수 있는 크기를 제한하는 parameter입니다.
 reservation은
현재 volume에 할당되어있는 크기를
나타냅니다. volume에 reservation parameter를 수정
하게 되면 전체 pool의 가용한 용량이 줄어들게 됩니
다.
zfs volume admin

change quota
pool의 크기와 volume
의 크기가 같은 것을
확인 할 수 있습니다.
zfs volume admin

change quota
volume의 크기는 변하였
지만 pool의 가용량은 변
하지 않은 것을 확인 할
수 있습니다.
zfs volume admin

change reservation
pool의 USED용량과
AVAIL 용량이 바뀐 것을
확인 할 수 있습니다.
raw volume admin

create raw volume
volume생성시 blocksize
와 volume의 크기를 명
시해줍니다.
pool의 사용량과 가용량
이 줄어든 것을 확인 할
수 있습니다.
raw volume이기 때문에
mount 되지 않습니다.
raw volume admin

zfs의 raw device 지원
‘/dev/zvol/rdsk/test_zfs/vol2’ 라는 raw device가 만들어진 것을 확인 할 수
있습니다.
zfs는 logical한 volume manager의 기능과 함께 raw device도 지원합니다.
게다가 newfs명령어로 ufs파일 시스템을 만들어 사용할 수도 있습니다.
그리고 on-line상태에서 raw volume의 크기를 증가 시킬 수 있습니다.
raw volume admin

raw device에 ufs파일시스템 구성
ufs파일시스템을 구성하고 /mnt 디렉토리에 마운트 된 모습입니다.
raw volume admin

volume의 정보 확인
zfs volume 과 raw volume간에
zfs get명령어로 얻을 수 있는 정보가
다름을 알 수 있습니다.
raw volume admin

raw volume의 크기 확장
raw volume admin

growfs command
‘zfs set volsize=8G test_zfs/vol2’ command로 raw볼륨의 크기
를 8GB로 확장 하였습니다.
그리고 ‘growfs’ command로 on-line상태에서 volume의 크기를
확장 하였습니다.
snapshot admin

‘zfs snapshot’ command
zfs file system은 zfs snapshot이라는 command로
간단하게 file system의 backup이미지를 만들 수 있습니다.
대용량의 volume이라도 수초 만에 백업 이미지가 생성되고,
복구 방법 또한 간단합니다.
하나하나의 파일 단위로 복구를 할 수도 있고, 이미지를
생성했던 당시로 rollback 시킬 수 도 있습니다.
snapshot admin

‘zfs snapshot’ command(create image)
‘zfs snapshot’ command의 format은
‘zfs snapshot “volume_name”@”snapshot_name” 입니다.
‘zfs list’ command로 test_zfs/vol1의 snapshot이 만들어진 것을 볼 수 있습
니다.
snapshot admin

‘zfs snapshot’ command(create image)
snapshot 이미지가 파일형태로 저장이 됩니다.
snapshot 이 생성되는 경로를 잘 확인 하시기 바랍니다.
snapshot admin

snapdir parameter
‘zfs get’ command를 이용하면 현재 snapdir parameter의 설정을 볼 수 있
습니다. default는 hidden입니다. ‘zfs set’ command로 snapdir의 설정을
바꿀 수 있습니다. snapdir을 visible로 설정하면 .zfs라는 snapshot
directory가 보이게 됩니다.
snapshot admin

restore data from snapshot
zfs snapshot을 이용한 복구는 매우 간단합니다.
단순하게 snapshot 이미지가 생성된 directory에서 file을
copy하는 것 만으로 복구가 가능합니다.
file 단위로 복구를 할 때는 copy command로 복구가 가능
하고 이미지 전체를 복구 할 때는 ‘zfs rollback’ command
를 사용하면 이미지를 생성했던 당시의 상태로 복구가 이루
어집니다.
snapshot admin

restore ‘cp’ command
단순하게 snapshot
directory에 이동해서 copy
하는 것으로 복구완료.
snapshot admin

restore ‘zfs rollback’ command
‘zfs rollback’ command
로 이미지를 생성했던
상태로 복구완료.
OS Disk Mirroring

OS disk mirroring.
zfs file system에서는 매우 간단하게 OS Disk를 Mirror
구성 할 수 있습니다.
기존의 rpool디스크에 여분의 디스크를 attach해주는 것
만으로 OS Disk의 Mirror구성을 완성 할 수 있습니다.
그리고 ‘installboot’ command로 attach된 Disk에 boot
block를 설치해주면 Disk Mirror가 완료됩니다.
OS Disk Mirroring

OS disk mirroring.
# zpool attach rpool c1t2d0s0 c1t3d0s0 기존의 디스크(c1t2d0s0) 추가디스크(c1t3d0s0)
# zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h0m, 5.03% done, 0h13m to go
config:
NAME
STATE
READ
WRITE
CKSUM
rpool
ONLINE
0
0
0
mirror
ONLINE
0
0
0
c1t2d0s0 ONLINE
0
0
0
c1t3d0s0 ONLINE
0
0
0
errors: No known data errors
# installboot -F zfs /usr/platform/‘uname -i‘/lib/fs/zfs/bootblk /dev/rdsk/c1t3d0s0
single boot from cdrom-drive

boot cdrom –s
장애 대응 시 cdrom 부팅이 필요한 경우가 있습니다.
간단한 예를 들면 root계정의 password를 잊어 버렸을 경우,
cdrom 으로 single mode 부팅 후 os가 들어있는 파티션을
임시로 마운트한 후에 /etc/password 파일을 수정하는 것으로
문제를 해결할 수 있습니다.
ufs 파일 시스템의 경우에는 single mode에서
‘mount /dev/dsk/c1t1d0s0 /mnt’ 이런식으로 os를 임의로 마운트
하고 작업이 가능합니다.
하지만 zfs 파일 시스템에서는 그 방법이 약간 상이합니다.
single boot from cdrom-drive

boot cdrom –s
ok boot cdrom -s
Resetting ...
SUNW,Sun-Blade-1000 (UltraSPARC-III) , No Keyboard
Copyright 1998-2002 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.5, 1024 MB memory installed, Serial #51825606.
Ethernet address 0:3:ba:16:cb:c6, Host ID: 8316cbc6.
Rebooting with command: boot cdrom -s
Boot device: /pci@8,700000/scsi@6/disk@6,0:f File and args: -s
SunOS Release 5.10 Version Generic_137137-09 64-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Configuring devices.
Using RPC Bootparams for network configuration information.
Attempting to configure interface eri0...
SUNW,eri0 : 100 Mbps full duplex link up
Skipped interface eri0
Requesting System Maintenance Mode
SINGLE USER MODE
#
single boot from cdrom-drive

boot cdrom –s
# zfs list
no datasets available
# # zpool list
no pools available
# # zpool import -f rpool
cannot mount '/oracle': failed to create mountpoint
cannot mount '/oradata': failed to create mountpoint
cannot mount '/rpool': failed to create mountpoint
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
rpool
23.2G 10.1G 94K /rpool
rpool/ROOT
5.15G 10.1G 18K legacy
rpool/ROOT/s10s_u6wos_07b
5.15G 10.1G 5.14G legacy
rpool/ROOT/s10s_u6wos_07b@s10s_u6wos_07b_2 13.9M
- 5.14G rpool/ROOT/s10s_u6wos_07b_2
119K 10.1G 5.14G /
rpool/dump
1.00G 10.1G 1.00G rpool/swap
2G 10.6G 1.48G rpool/vol1
8.10G 1.90G 7.90G /oracle
rpool/vol1@snap_oracle
206M
- 7.67G rpool/vol2
3.89G 1.11G 3.56G /oradata
rpool/vol2@snap_oradata
333M
- 3.56G #
single boot from cdrom-drive

boot cdrom –s
# df -h
Filesystem
size used avail capacity Mounted on
/ramdisk-root:a
167M 164M
0K 100% /
/devices
0K
0K
0K
0% /devices
ctfs
0K
0K
0K
0% /system/contract
proc
0K
0K
0K
0% /proc
mnttab
0K
0K
0K
0% /etc/mnttab
swap
729M 336K 729M
1% /etc/svc/volatile
objfs
0K
0K
0K
0% /system/object
sharefs
0K
0K
0K
0% /etc/dfs/sharetab
swap
729M 592K 729M
1% /tmp
/tmp/dev
729M 592K 729M
1% /dev
fd
0K
0K
0K
0% /dev/fd
/devices/pci@8,700000/scsi@6/sd@6,0:f
2.5G 2.5G
0K 100% /cdrom
df: cannot statvfs /platform/sun4u-us3/lib/libc_psr.so.1: Operation not applicable
df: cannot statvfs /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1: Operation not applicable
swap
729M
0K 729M
0% /tmp/root/var/run
# zfs set mountpoint=legacy rpool/ROOT/s10s_u6wos_07b
#
# mount -F zfs rpool/ROOT/s10s_u6wos_07b /mnt
single boot from cdrom-drive

boot cdrom –s
# df -h
Filesystem
size used avail capacity Mounted on
/ramdisk-root:a
167M 164M
0K 100% /
/devices
0K
0K
0K
0% /devices
ctfs
0K
0K
0K
0% /system/contract
proc
0K
0K
0K
0% /proc
mnttab
0K
0K
0K
0% /etc/mnttab
swap
729M 336K 729M
1% /etc/svc/volatile
objfs
0K
0K
0K
0% /system/object
sharefs
0K
0K
0K
0% /etc/dfs/sharetab
swap
729M 592K 729M
1% /tmp
/tmp/dev
729M 592K 729M
1% /dev
fd
0K
0K
0K
0% /dev/fd
/devices/pci@8,700000/scsi@6/sd@6,0:f
2.5G 2.5G
0K 100% /cdrom
rpool/ROOT/s10s_u6wos_07b
33G 5.1G 10G 34% /mnt
# cd /mnt
# ls
Desktop boot
etc
kernel net
platform system var
TEST
core
export lib
opt
proc
tmp
vol
TT_DB
dev
herosuby mirror oracle rpool
unione
bin
devices home
mnt
oradata sbin
usr
#
감사합니다.