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 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
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 # 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 기존의 디스크(c1t2d0s0) 추가디스크(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 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 #
감사합니다.