출처: https://blog.naver.com/1004linus/140044223109
ZFS 실습
==============================
1. 환경설정
1) 디스크 환경 설정
<c0t1d0 장치>
2. ZFS 용 storage pool 생성 & filesystem 생성
1) 현재 pool 정보 확인
#zpool status
-------------------------------------------------------------------------------------------
no pools available
-------------------------------------------------------------------------------------------
#zpool list
-------------------------------------------------------------------------------------------
no pools available
-------------------------------------------------------------------------------------------
2) Stripe pool 설정
#zpool create zfs-stripe c0t1d0s3 c0t1d0s4
#zpool list
-------------------------------------------------------------------------------------------
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
zfs-stripe 1.98G 33.0K 1.98G 0% ONLINE -
-------------------------------------------------------------------------------------------
#zpool status
-------------------------------------------------------------------------------------------
pool : zfs-stripe
state : ONLINE
scrub: noe requested
config :
NAME STATE READ WRITE CKSUN
zfs_stripe ONLINE 0 0 0
c0t1d0s3 ONLINE 0 0 0
c0t1d0s4 ONLINE 0 0 0
-------------------------------------------------------------------------------------------
3) mount 확인
#df -h -F zfs
-------------------------------------------------------------------------------------------
파일시스템 크기 사용 가용 용량 설치지점
zfs-stripe 2.0G 8K 2.0G 1% /zfs-stripe
-------------------------------------------------------------------------------------------
4) ZFS 파일 시스템 확인
#zfs list
-------------------------------------------------------------------------------------------
NAME USED AVAIL REFER MOUNTPOINT
zfs-stripe 32K 1.97G 8K /zfs-stripe
-------------------------------------------------------------------------------------------
5) 데이터 생성 test
#mkfile 10m /zfs-stripe/zfs-test
#ls -alh /zfs-stripe
3. ZFS pool 관리
1) Pool 용량 확인
#zpool list
2)Pool 상태 확인
#zpool status -x
# zpool status -v
3) zpool i/o 사용률 모니터링
#zpool iostat zfs-stripe 1 2
#zpool iostat -v zfs-stripe 1 2
4) 기본 pool에 장치 추가
#zpool status -v
#zpool add zfs-stripe c0t1d0s5
#zpool status -v
#df -h -F zfs
5) mirror Pool 생성 (mount point 설정)
#zpool create -m /mirror zfs-mirror mirror c0t1d0s6 c0t1d0s7
#zfs list
#zpool status -v zfs-mirror
# df -h -F zfs
6) RAIDZ pool 생성
#zpool create -m /raid zfs-raid raidz c2t0d0s0 c2t0d0s1 c2t0d0s3
#zpool list
#zpool status -v zfs-raid
#df -h -F zfs
#mkfile 100m /raid/test
#df -h -F zfs
7) File을 zfs 파일 시스템으로
#mkfile 100m /disk1 /disk2 /disk3 /disk4
#zpool create -m /data zfs-file mirror /disk1 /disk2 mirror /disk3 /disk4
#zpool list
#zpool status -v zfs-file
#df -h -F zfs
8) Pool Export
#zpool list
#zpool export -f zfs-raid
#zpool list
9) Pool import
#zpool import -d /dev/dsk <- import 가능한 pool 검색
#zpool import zfs-raid
#zpool list
10) pool 제거
#zpool destory zfs-file
#zpool destory zfs-stripe
#zpool list
11) Pool scrub
#zpool status -v zfs-raid
12) Pool 내에 device Off-line
#zpool status -v zfs-mirror
#zpool offline zfs-mirror c0t10d0s7
#zpool status -v zfs-mirror
13) Pool 내에 device On-line
#zpool online zfs-mirror c0t10d0s7
#zpool status -v zfs-mirror
14) Pool 내의 disk 문제로 인한 disk 교체
#zpool status zfs-mirror
#zpool replace zfs-mirror c0t1d0s7 c0t1d0s5
#zpool status zfs-mirror
15) Mirror pool 에서 disk 제거
#zpool detach zfs-mirror c0t1d0s5
#zpool status zfs-mirror
16)#zpool attach zfs-mirror c0t1d0s6 c0t1d0s7
#zpool status zfs-mirror
17) Pool Debuger
#zdb zfs-mirror
4. ZFS Filesystem 관련 명령
1) 기존 Pool (Dataset)에서 Filesystem 추가 생성 (자식 파일 시스템 생성)
#zfs list
#zfs create zfs-mirror/d1
#zfs create zfs-mirror/d2
#zfs list
#df -h -F zfs
<파일 생성 test>
#mkfile 100m /mirror/d1/test-zfs
#df -h -F zfs
2) ZFS Filesystem 속성 정보 확인
#zfs get all zfs-mirror <- 부모 파일 시스템 속성 확인
#zfs get all zfs-mirror/d1 <- 자식 파일 시스템 속성 확인
3) 자식 파일 시스템의 Mount Point 변경
#zfs set mountpoint=/data1 zfs-mirror/d1
#zfs list
#df -h -F zfs
#zfs get mountpoint zfs-mirror/d1
4) 부모 파일시스템의 Mount Point 변경
#zfs set mountpoint=/raid1 zfs-mirror
#zfs list
#zfs get mountpoint zfs-mirror
5) zfs mount 확인
#zfs mount
6)zfs umount
#zfs umount /raid
#df -h -F zfs
#zfs get mounted zfs-raid
7) ZFS mount
#zfs mount zfs-raid
#zfs get mountd zfs-raid
#df -h -F zfs
8)zfs filesystem umount 하기
#zfs umount -a
#df -h -F zfs
9) 모든 zfs filesystem mount 하기
#zfs mount -a
#df -h -F zfs
10) zfs filesystem 제거
#zfs destory -rf zfs-mirror/d1
#zfs list
11) snapshot 설정
#cp /etc/passwd /raid1
#ls -al /raid1
#zfs snapshot zfs-mirror@20071030_03:01
#zfs list
#cp /etc/shadow /raid1
#ls -al /raid1
#zfs snapshot zfs-mirror#20071030_03:05
#zfs list
12) snap 디렉토리 확인
#ls -al /raid1/.zfs/snapshot/20071030_03:01 /raid1/.zfs/snapshot/20071030_03:05
13) snap 디렉토리 숨기기
#zfs get snapdir zfs-mirror
#zfs set snapdir=hidden zfs-mirror
#ls -al /raid1
14) snap 디렉토리 보이기
#zfs set snapdir=visibel zfs-mirror
#ls -al /raid1
15) snapshot 데이터로 복구
#rm /raid1/shadow
#ls -al /raid1
#cp /raid1/.zfs/snapshot/20071030_03:05/shadow /raid1
#ls -al /raid1
16) rollback 으로 복귀
<%주의 : rollback는 모든 파일을 예전 상태로 바꿔놓는 것이므로 주의, snap의 순서 중 먼저 만든 snap을 이용하여
복구 시 나중에 만들어진 snap은 제거됨>
#ls -F /raid1
#rm /raid1/*
#ls -F /raid1
#zfs list
#zfs rollback -rf zfs-mirror@20071030_03_05
#ls -F /raid1
#zfs list
17) snapshot 제거
#zfs destory zfs-mirror@20071030_03_05
#zfs destory zfs-mirror@20071030_03_01
#zfs list
18) clone 생성
#ls -F /raid1
#zfs snapshot zfs-mirror@20071030_03:05
#zfs clone zfs-mirror@20071030_03:05 zfs-mirror/cron
#zfs list
#ls -F /raid1/cron
#mkfile 10m /raid1/cron/test
#ls /raid1/cron
#ls -F /raid1
19) clone 제거
#zfs list
#zfs destory zfs-mirror/cron
#zfs destroy zfs-mirror@20071030_03:05
#zfs list
20) 파일 시스템 압축
#df -h -F zfs
#zfs set compression=on zfs-raid
#df -h -F zfs
#ls -lh /raid
#mkfile 100m /raid/test2
#df -h -F zfs
#ls -lh /raid
21) 파일 시스템 압축 해제
#zfs set compression=off zfs-raid
#df -h -F zfs
#mkfile 100m /raid/test3
#df -h -F zfs
#ls -lh /raid
<참고> raid filesystem은 parity가 추가 되기 때문에 100M 이면 150M의 용량을 사용한다. 압축 해제 이전에 행해진
작업은 압축 제거 후에도 계속 유지된다. 압축 설정 하는 순간에 파일을 기록하면 파일이 압축되고, 압축 설정 시
자동으로 압축이 해제 되지 않는다.
22) zfs volume 생성 후 ufs filesystem 구축
#zfs create -V 500M zfs-raid/oracle-vol
#zfs list
#zfs get all zfs-raid/oracle-vol
#ls -IL /dev/zvol/rdsk/zfs-raid/oracle-vol
#newfs /dev/zvol/rdsk/zfs-raid/oracle-vol
#mkdir /vol1
#mount /dev/zvol/dsk/zfs-raid/oracle-vol /vol1
#df -h /vol1
23) zfs volume 사이즈 증가
#zfs get all zfs-raid/oracle-vol
#zfs set volsize=800M zfs-raid/oracle-vol
#zfs get all zfs-raid/oracle-vol
<파일 시스템 사이즈 증가>
#growfs -M /vol1 /dev/zvol/rdsk/zfs-raid/oracle-vol
#df -h /vol1
24) volume 제거
#umount /vol1
#zfs destory zfs-raid/oracle-vol
#zfs list
25) zfs share
#zfs set sharenfs='anon=0,ro' zfs-raid
#zfs get sharenfs zfs-raid
#share
#svcs nfs/server
26) zfs unshare
#zfs unshare zfs-raid
#share
#zfs get sharenfs zfs-raid
#zfs set sharenfs=off zfs-raid
5. zone에 zfs 사용 <기존 zfs를 다 제거 후 새로게 zfs를 구성한다>
1) mirror pool 생성
#zpool create -fm /zone zfs-zone mirror c1t0d0s2 c2t0d0s2
#zfs list
2) zone에 사용 할 filesystem을 생성
<생성 할 filesystem은 반드시 zoned='on'으로 mountpoint='legacy'로 설정한다.>
#zfs crate zfs-zone/test_zone
#df -h -F zfs
#zfs set mountpoint=legacy zfs-zone/test-zone
#df -h -F zfs
#zfs get mountpoint zfs-zone/test-zone
#zfs list
3) zone 생성
#zonecfg -z test_zone
>create
>set zonepath=/test-zone
>add net
>set physical=hme0
>set address=107.2.10.1/24
>end
>commit
>exit
#zoneadm -z test-zone install
#zoneadm -z test-zone boot
#zlogin -C test-zone
<zone console로 host 환경을 구성>
4) zonecfg 명령으로 zfs 설정
#zonecfg -z test-zone
>add fs
>set type=zfs
>set special=zfs-zone/test-zone
>set dir=/DATA1
>end
>exit
5) zone을 rebooting
#zoenadm -z test-zone reboot
#zlogin test-zone df -h
#zfs get zoned zfs-zone/test-zone
6. zone에 zfs 권한 위임
1) 생성 한 zone에서 zfs 정보 확인
#zonename
#zlogin -C test-zone
#zonename
#zfs get all zfs-zone/test-zone
#zfs list
2) zone 구성 정보를 변경함
#zonecfg -z test-zone
>add dataset
>set name=zfs-zone/test-zone
>end
>commit
>exit
3) zone을 rebooting
#zoneadm -z tets-zone reboot
#zlogin -C test-zone
#zfs list
#zfs set compression=on zfs-zone/test-zone
#zfs get compression zfs-zone/test-zone
#zpool list
<상위 zfs directory 수정>
#zfs set compression=on zfs-zone
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
Tibero 6 데이터베이스 대용량 DB 구성 (0) | 2025.02.24 |
---|---|
SPARC M12-S2 서버에서 Solaris 11을 실행하고 물리 메모리가 320GB인 경우, ZFS 성능을 최적화 (0) | 2025.02.24 |
solaris 서버 관리 사이트 (0) | 2025.02.24 |
ZFS 사용시 메모리(RAM) 사용량 최적화 하기. (0) | 2025.02.24 |
저작권 - 깃허브로 웹사이트 만드는 방법 (0) | 2025.02.24 |