<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog-boxcorea &#187; Solaris(솔라리스)</title>
	<atom:link href="http://blog.boxcorea.com/wp/archives/category/solaris/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.boxcorea.com/wp</link>
	<description>Simple is Beautiful!</description>
	<lastBuildDate>Thu, 02 Feb 2012 06:45:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>sun v480 error message&#8230;</title>
		<link>http://blog.boxcorea.com/wp/archives/393</link>
		<comments>http://blog.boxcorea.com/wp/archives/393#comments</comments>
		<pubDate>Thu, 02 Feb 2012 06:45:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[H/W(하드웨어)]]></category>
		<category><![CDATA[Solaris(솔라리스)]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=393</guid>
		<description><![CDATA[처음 에러 메시지 Dec 13 06:47:11 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK Dec 13 06:47:11 solaris9 picld[60]: [ID 114988 daemon.error] FSP_GEN_FAULT_LED has turned OFF Dec 13 08:22:26 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected Dec 13 08:22:28 solaris9 picld[60]: [ID 691918 daemon.error] FSP_GEN_FAULT_LED has turned ON Dec 13 [...]]]></description>
			<content:encoded><![CDATA[<p>처음 에러 메시지</p>
<blockquote><p>Dec 13 06:47:11 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK<br />
Dec 13 06:47:11 solaris9 picld[60]: [ID 114988 daemon.error] FSP_GEN_FAULT_LED has turned OFF<br />
Dec 13 08:22:26 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected<br />
Dec 13 08:22:28 solaris9 picld[60]: [ID 691918 daemon.error] FSP_GEN_FAULT_LED has turned ON<br />
Dec 13 08:22:41 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected<br />
Dec 13 08:22:57 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK<br />
Dec 13 08:22:58 solaris9 picld[60]: [ID 114988 daemon.error] FSP_GEN_FAULT_LED has turned OFF</p></blockquote>
<p>FAN TRAY를 교체하려고 준비했을때는 아래와 같이 바뀌었음.</p>
<blockquote><p>Jan 19 15:24:11 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU0_FAN) failure detected<br />
Jan 19 15:24:11 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU1_FAN) failure detected<br />
Jan 19 15:24:11 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected<br />
Jan 19 15:24:26 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU0_FAN) OK<br />
Jan 19 15:24:26 solaris9 picld[60]: [ID 679711 daemon.error] NOTICE: Device FAN_TRAY_0 (CPU1_FAN) OK<br />
Jan 19 15:24:26 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected<br />
Jan 19 15:26:41 solaris9 last message repeated 9 times</p></blockquote>
<p>FAN TRAY를 교체하고 (이때 FAN Tray의 fan 3개는 모두 정상적으로 돌고 있었음.) 재부팅했을때 아래와 같음.</p>
<blockquote><p>Jan 19 15:38:59 solaris9 ntpdate[234]: [ID 558275 daemon.notice] adjust time server 10.100.88.42 offset 0.266879 sec<br />
Jan 19 15:39:02 solaris9 xntpd[292]: [ID 702911 daemon.notice] xntpd 3-5.93e Mon Sep 20 15:47:11 PDT 1999 (1)<br />
Jan 19 15:39:02 solaris9 xntpd[292]: [ID 301315 daemon.notice] tickadj = 5, tick = 10000, tvu_maxslew = 495, est. hz = 100<br />
Jan 19 15:39:02 solaris9 xntpd[292]: [ID 798731 daemon.notice] using kernel phase-lock loop 0041<br />
Jan 19 15:39:02 solaris9 last message repeated 1 time<br />
Jan 19 15:39:04 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected<br />
Jan 19 15:39:05 solaris9 picld[60]: [ID 691918 daemon.error] FSP_GEN_FAULT_LED has turned ON<br />
Jan 19 15:39:19 solaris9 picld[60]: [ID 562987 daemon.error] WARNING: FAN_TRAY_0 (CPU2_FAN) failure detected<br />
Jan 19 15:40:05 solaris9 last message repeated 3 times</p></blockquote>
<p>일단 팬트레이를 교체해도 문제가 해결되지 않아서 더 찾아보니, picld 버그일 가능성이 있다고 한다.  패치를 찾아서 시도해 보아야 할 상황인데, 패치를 받기가 힘들다. sun이 오라클에 합병당해서&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/393/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>v480 디스크 교체.</title>
		<link>http://blog.boxcorea.com/wp/archives/280</link>
		<comments>http://blog.boxcorea.com/wp/archives/280#comments</comments>
		<pubDate>Thu, 28 Jul 2011 00:42:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[H/W(하드웨어)]]></category>
		<category><![CDATA[Solaris(솔라리스)]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=280</guid>
		<description><![CDATA[운영중인 sun v480 서버의 디스크가 고장났을때, 아래와 같은 절차로 교체. 디스크는 내부 FCAL 디스크 2개이며, mirror 구성되어 있다.  때문에, 디스크 교체후 mirror를 구성해 주어야 한다. 1. 디스크의 교체(핫스왑) 먼저, iostat -en 으로 고장 디스크 확인. &#8212;- errors &#8212;- s/w   h/w   trn   tot &#8230; 1        0         [...]]]></description>
			<content:encoded><![CDATA[<p>운영중인 sun v480 서버의 디스크가 고장났을때, 아래와 같은 절차로 교체.</p>
<p>디스크는 내부 FCAL 디스크 2개이며, mirror 구성되어 있다.  때문에, 디스크 교체후 mirror를 구성해 주어야 한다.</p>
<p>1. 디스크의 교체(핫스왑)</p>
<p>먼저, iostat -en 으로 고장 디스크 확인.</p>
<blockquote><p>&#8212;- errors &#8212;-<br />
s/w   h/w   trn   tot<br />
&#8230;<br />
1        0         0       0        c1t0d0<br />
0      13   126   139         c1t1d0</p></blockquote>
<p>luxadm으로 디스크 제거.</p>
<blockquote><p>luxadm -e remove_device -F /dev/rdsk/c1t1d0s2</p>
<p>WARNING!! please ensure that no filesystem are mounted on these device(s).<br />
All data on these devices should have been  backed up.</p>
<p>Error: SCSI failure. &#8211; /dev/rdsk/c1t1d0s2</p>
<p>luxadm -e offline /dev/rdsk/c1t1d0s2<br />
devctl: I/O error</p></blockquote>
<p>디스크가 이미 고장이므로 luxadm이 정상작동 하지 않았다.</p>
<p>그래서, 그냥 디스크 빼고 새 디스크로 교체.</p>
<p>바로 online 메시지 나오면서 인식.</p>
<p>이후 mirror작업수행.</p>
<p>2. 미러작업 완료후, Resync 중에 시스템을 종료해야만 했다. 이후 재 부팅과정에서 문제가 발생했다.</p>
<blockquote><p>stale databases &#8230;</p></blockquote>
<p>single user모드로 부팅이 되며, fsck 로도 해결되지 않았음. single모드에서 아래 커맨드 수행</p>
<blockquote><p>metadb</p>
<p>metadb -d /dev/dsk/c1t1d0s7</p></blockquote>
<p>s7이 메타디바이스영역.</p>
<p>이후 정상 부팅후,</p>
<blockquote><p>metadb -a /dev/dsk/c1t1d0s7</p></blockquote>
<p>이후 metastat 로 확인해보면, resyncing되는것을 확인.</p>
<p>혹시나해서 검색해보니, <a href="http://download.oracle.com/docs/cd/E19455-01/806-3205/troubleshoottasks-38/index.html">http://download.oracle.com/docs/cd/E19455-01/806-3205/troubleshoottasks-38/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/280/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>solaris lvm mirror &#8211; 스크랩</title>
		<link>http://blog.boxcorea.com/wp/archives/268</link>
		<comments>http://blog.boxcorea.com/wp/archives/268#comments</comments>
		<pubDate>Thu, 23 Jun 2011 10:57:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Solaris(솔라리스)]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=268</guid>
		<description><![CDATA[구성&#8230; http://blog.naver.com/comki/100024647947 복구 http://www.brandonhutchinson.com/Replacing_a_disk_with_different_geometry_in_DiskSuite.html 내가 해본것. 원본디스크: c0t0d0s2  대상디스크: c0t1d0s2 원본디스크의 파티션 (7번 슬라이스는 md를 위한 공간으로 16MB잡았음) partition&#62; p Current partition table (original): Total disk cylinders available: 47994 + 2 (reserved cylinders) Part      Tag    Flag     Cylinders         Size            Blocks 0       root    wm     352 &#8211; 27391       38.47GB    (27040/0/0)  80687360 1       swap    wu       0 -   351      512.88MB    [...]]]></description>
			<content:encoded><![CDATA[<p>구성&#8230;</p>
<p><a href="http://blog.naver.com/comki/100024647947">http://blog.naver.com/comki/100024647947</a></p>
<p>복구</p>
<p><a href="http://www.brandonhutchinson.com/Replacing_a_disk_with_different_geometry_in_DiskSuite.html">http://www.brandonhutchinson.com/Replacing_a_disk_with_different_geometry_in_DiskSuite.html</a></p>
<p>내가 해본것.</p>
<p>원본디스크: c0t0d0s2  대상디스크: c0t1d0s2</p>
<p>원본디스크의 파티션 (7번 슬라이스는 md를 위한 공간으로 16MB잡았음)</p>
<blockquote><p>partition&gt; p<br />
Current partition table (original):<br />
Total disk cylinders available: 47994 + 2 (reserved cylinders)</p>
<p>Part      Tag    Flag     Cylinders         Size            Blocks<br />
0       root    wm     352 &#8211; 27391       38.47GB    (27040/0/0)  80687360<br />
1       swap    wu       0 -   351      512.88MB    (352/0/0)     1050368<br />
2     backup    wm       0 &#8211; 47993       68.29GB    (47994/0/0) 143214096<br />
3 unassigned    wm       0                0         (0/0/0)             0<br />
4 unassigned    wm       0                0         (0/0/0)             0<br />
5 unassigned    wm   27392 &#8211; 34255        9.77GB    (6864/0/0)   20482176<br />
6 unassigned    wm   34256 &#8211; 47982       19.53GB    (13727/0/0)  40961368<br />
7 unassigned    wm   47983 &#8211; 47993       16.03MB    (11/0/0)        32824</p></blockquote>
<p>1. 디스크 미러 만들기</p>
<blockquote><p>prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s &#8211; /dev/rdsk/c0t1d0s2</p></blockquote>
<p>여기서 두 디스크의 모델이 서로 달라서 에러 발생. 이것은 두번째 문서를 참조하여, 같은 모델로 설정함.</p>
<blockquote><p>format -&gt; disk -&gt; 1 -&gt; type -&gt; &#8230;..</p></blockquote>
<p>디스크 파티션은 아래와 같음</p>
<blockquote><p>/dev/dsk/c0t0d0s1       -       -       swap    -       no      -<br />
/dev/dsk/c0t0d0s0  /dev/rdsk/c0t0d0s0 /       ufs     1       no      -<br />
/dev/dsk/c0t0d0s5       /dev/rdsk/c0t0d0s5      /oracle ufs     2       yes     -<br />
/dev/dsk/c0t0d0s6       /dev/rdsk/c0t0d0s6      /oradata        ufs     2       yes     -<br />
swap    -       /tmp    tmpfs   -       yes     -</p></blockquote>
<p>작업내용</p>
<blockquote><p>metadb -a -f -c 2 /dev/dsk/c0t0d0s7 /dev/dsk/c0t1d0s7</p>
<p>metainit -f d10 1 1 c0t0d0s0<br />
metainit -f d20 1 1 c0t1d0s0<br />
metainit d0 -m d10<br />
metaroot d0<br />
lockfs -fa<br />
metainit -f d11 1 1 c0t0d0s1<br />
metainit -f d21 1 1 c0t1d0s1<br />
metainit d1 -m d11<br />
metainit -f d 15 1 1 c0t0d0s5<br />
metainit -f d15 1 1 c0t0d0s5<br />
metainit -f d25 1 1 c0t1d0s5<br />
metainit d5 -m d15<br />
metainit -f d16 1 1 c0t0d0s6<br />
metainit -f d26 1 1 c0t1d0s6<br />
metainit d6 -m d16</p></blockquote>
<p>/etc/vfstab 을 편집</p>
<blockquote><p>/dev/md/dsk/d1  -       -       swap    -       no      -<br />
/dev/md/dsk/d0  /dev/md/rdsk/d0 /       ufs     1       no      -<br />
/dev/md/dsk/d5  /dev/md/rdsk/d5 /oracle ufs     2       yes     -<br />
/dev/md/dsk/d6  /dev/md/rdsk/d6 /oradata        ufs     2       yes     -<br />
swap    -       /tmp    tmpfs   -       yes     -</p></blockquote>
<p>그리고 재부팅 후 나머지 슬라이스를 메타디바이스에 추가해준다.</p>
<blockquote><p>metattach d0 d20<br />
metattach d1 d21<br />
metattach d5 d25<br />
metattach d6 d26</p></blockquote>
<blockquote><p># metastat<br />
d6: Mirror<br />
Submirror 0: d16<br />
State: Okay<br />
Submirror 1: d26<br />
State: Resyncing<br />
Resync in progress: 17 % done<br />
Pass: 1<br />
Read option: roundrobin (default)<br />
Write option: parallel (default)<br />
Size: 40961368 blocks (19 GB)</p>
<p>d16: Submirror of d6<br />
State: Okay<br />
Size: 40961368 blocks (19 GB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t0d0s6          0     No            Okay   Yes<br />
d26: Submirror of d6<br />
State: Resyncing<br />
Size: 40961368 blocks (19 GB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t1d0s6          0     No            Okay   Yes<br />
d5: Mirror<br />
Submirror 0: d15<br />
State: Okay<br />
Submirror 1: d25<br />
State: Resyncing<br />
Resync in progress: 79 % done<br />
Pass: 1<br />
Read option: roundrobin (default)<br />
Write option: parallel (default)<br />
Size: 20482176 blocks (9.8 GB)</p>
<p>d15: Submirror of d5<br />
State: Okay<br />
Size: 20482176 blocks (9.8 GB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t0d0s5          0     No            Okay   Yes<br />
d25: Submirror of d5<br />
State: Resyncing<br />
Size: 20489378 blocks (9.8 GB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t1d0s5          0     No       Resyncing   Yes<br />
d1: Mirror<br />
Submirror 0: d11<br />
State: Okay<br />
Submirror 1: d21<br />
State: Okay<br />
Pass: 1<br />
Read option: roundrobin (default)<br />
Write option: parallel (default)<br />
Size: 1050368 blocks (512 MB)</p>
<p>d11: Submirror of d1<br />
State: Okay<br />
Size: 1050368 blocks (512 MB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t0d0s1          0     No            Okay   Yes<br />
d21: Submirror of d1<br />
State: Okay<br />
Size: 1051466 blocks (513 MB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t1d0s1          0     No            Okay   Yes<br />
d0: Mirror<br />
Submirror 0: d10<br />
State: Okay<br />
Submirror 1: d20<br />
State: Resyncing<br />
Resync in progress: 0 % done<br />
Pass: 1<br />
Read option: roundrobin (default)<br />
Write option: parallel (default)<br />
Size: 80687360 blocks (38 GB)</p>
<p>d10: Submirror of d0<br />
State: Okay<br />
Size: 80687360 blocks (38 GB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t0d0s0          0     No            Okay   Yes<br />
d20: Submirror of d0<br />
State: Resyncing<br />
Size: 80687360 blocks (38 GB)<br />
Stripe 0:<br />
Device     Start Block  Dbase        State Reloc Hot Spare<br />
c0t1d0s0          0     No            Okay   Yes</p></blockquote>
<p>&nbsp;</p>
<p>2.  dd로 두번째 디스크 에러 유발</p>
<blockquote><p>dd if=/dev/zero of=/dev/dsk/c0t1d0s2</p></blockquote>
<p>이후, prtvtoc로 두번째 디스크의 파티션을 재 설정하고,  각각의 서브미러를 replace해준다.</p>
<blockquote><p>metareplace -e d5 c0t1d0s5<br />
metareplace -e d6 c0t1d0s6<br />
metareplace -e d0 c0t1d0s0<br />
metareplace -e d1 c0t1d0s1</p></blockquote>
<p>만약 제대로 수행이 안된다면,  메타디바이스에서 분리(metadetach)후, 삭제(metaclear)하고, 다시 만들어줌(metainit)</p>
<blockquote><p>metadetach -f d0 d20<br />
metaclear d20<br />
metainit -f d20 1 1 c0t1d0s0</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/268/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>netservices</title>
		<link>http://blog.boxcorea.com/wp/archives/195</link>
		<comments>http://blog.boxcorea.com/wp/archives/195#comments</comments>
		<pubDate>Fri, 03 Jul 2009 00:39:04 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[Solaris(솔라리스)]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=195</guid>
		<description><![CDATA[solaris10에서  불필요한 네트워크 서비스를 제한할 수 있는 커맨드 netservices [open &#124; limited] open이면 모든 네트워크 서비스들이 열리고, limited로 하면, nfs같은 사용안하는 서비스는 열리지 않음. 관련커맨드는, svcadm, svccfg등..]]></description>
			<content:encoded><![CDATA[<p>solaris10에서  불필요한 네트워크 서비스를 제한할 수 있는 커맨드</p>
<p>netservices [open | limited]</p>
<p>open이면 모든 네트워크 서비스들이 열리고, limited로 하면, nfs같은 사용안하는 서비스는 열리지 않음.</p>
<p>관련커맨드는, svcadm, svccfg등..</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/195/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>solaris /etc/system 설정.</title>
		<link>http://blog.boxcorea.com/wp/archives/146</link>
		<comments>http://blog.boxcorea.com/wp/archives/146#comments</comments>
		<pubDate>Fri, 14 Nov 2008 02:07:38 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[Solaris(솔라리스)]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=146</guid>
		<description><![CDATA[/etc/system화일은 커널변수를 변경할때 사용하는 화일이다. /etc/system 파일에서 변수로 사용 되는 것들 - moddir 변수는 부팅되는 시간에 로드되는 모듈의 탐색 경로를 수정 - exclude 변수는 참조되는 모듈들을 배제할 때 사용 - rootdev 변수는 교체될 루트 장치를 결정할 때 사용 - variable = value 는 커널 매개변수의 기본으로 지정 * 스택상에서 프로그램 실행되는것을 방지하는 방법 set noexec_user_stack [...]]]></description>
			<content:encoded><![CDATA[<p>/etc/system화일은 커널변수를 변경할때 사용하는 화일이다.</p>
<p>/etc/system 파일에서 변수로 사용 되는 것들<br />
- moddir 변수는 부팅되는 시간에 로드되는 모듈의 탐색 경로를 수정<br />
- exclude 변수는 참조되는 모듈들을 배제할 때 사용<br />
- rootdev 변수는 교체될 루트 장치를 결정할 때 사용<br />
- variable = value 는 커널 매개변수의 기본으로 지정</p>
<p>* 스택상에서 프로그램 실행되는것을 방지하는 방법<br />
set noexec_user_stack = 1<br />
set noexec_user_stack_log = 1         #로그에 남도록 설정</p>
<p>* session time out 설정<br />
set swip :tcpidletimeout=200</p>
<p>* 텔넷의 동시접속자 수 제한<br />
set pt_cnt=100<br />
set npty=100</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/146/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dtrace에 관한 글&#8230;</title>
		<link>http://blog.boxcorea.com/wp/archives/135</link>
		<comments>http://blog.boxcorea.com/wp/archives/135#comments</comments>
		<pubDate>Wed, 10 Sep 2008 03:05:55 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[Solaris(솔라리스)]]></category>
		<category><![CDATA[dtrace]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=135</guid>
		<description><![CDATA[dtrace가 솔라리스10의 회심의 역작이라지만,  그 개념 말고는 별로 아는게 없다. 오늘 http://sdnkorea.com/blog/641에서 그 실 사용 예를 보았다. dtrace를 실행하는 것이 문제가 아니라, 그 실행 결과물을 해석하는것. 역시 해석이 어려운거다.]]></description>
			<content:encoded><![CDATA[<p>dtrace가 솔라리스10의 회심의 역작이라지만,  그 개념 말고는 별로 아는게 없다.</p>
<p>오늘 <a href="http://sdnkorea.com/blog/641">http://sdnkorea.com/blog/641</a>에서 그 실 사용 예를 보았다.</p>
<p>dtrace를 실행하는 것이 문제가 아니라, 그 실행 결과물을 해석하는것. 역시 해석이 어려운거다.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/135/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>solaris10 SMF</title>
		<link>http://blog.boxcorea.com/wp/archives/133</link>
		<comments>http://blog.boxcorea.com/wp/archives/133#comments</comments>
		<pubDate>Mon, 23 Jun 2008 08:47:08 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[Solaris(솔라리스)]]></category>
		<category><![CDATA[SMF]]></category>
		<category><![CDATA[solaris10]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=133</guid>
		<description><![CDATA[solaris10을 사용하면서 아직도 익숙하지 않은것 중의 하나가  SMF다. 개념은 알겠는데, 도대체 새로 컴파일한 프로그램을 어떻게 등록해야 할지 막막하다. 특히,  최근에 apache2, tomcat을 설치했는데, 이것을 SMF에 등록하려니 엄두가 안난다. SMF가 모든 서비스를  관리 하겠다는 것 같다. 그런데, 새로운 서비스를 등록하려면??? 문서를 찾아본 결과는 좀 복잡했다. 게다가 설정을 xml로 하는듯 해서 그냥 포기한 상태다. 그러던 중 오늘 [...]]]></description>
			<content:encoded><![CDATA[<p>solaris10을 사용하면서 아직도 익숙하지 않은것 중의 하나가  SMF다. 개념은 알겠는데, 도대체 새로 컴파일한 프로그램을 어떻게 등록해야 할지 막막하다. 특히,  최근에 apache2, tomcat을 설치했는데, 이것을 SMF에 등록하려니 엄두가 안난다.</p>
<p>SMF가 모든 서비스를  관리 하겠다는 것 같다. 그런데, 새로운 서비스를 등록하려면???</p>
<p>문서를 찾아본 결과는 좀 복잡했다. 게다가 설정을 xml로 하는듯 해서 그냥 포기한 상태다. 그러던 중 오늘 우연히, 정말로 우연히 apache2를 SMF에 등록하는 문서를 보게되었다. 물론, 하나하나 자세하게 설명되어 있는것은 아니지만, 그냥 한번 따라해 보기에는 적당한듯 하다.</p>
<p>아래에 링크를 적어 놓는다.</p>
<p><span class="TIME hand">http://CecilDesK.egloos.com/tb/4414991</span></p>
<p>따라해 보니 잘 된다. 시간 날때, tomcat의 catalina.sh를 가지고 도전해 봐야 겠다.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/133/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sun studio&#8230;</title>
		<link>http://blog.boxcorea.com/wp/archives/132</link>
		<comments>http://blog.boxcorea.com/wp/archives/132#comments</comments>
		<pubDate>Thu, 05 Jun 2008 09:24:01 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[Solaris(솔라리스)]]></category>
		<category><![CDATA[sunstudio]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=132</guid>
		<description><![CDATA[sun studio도 다운로드하여 사용가능하게 됨에 따라서 mysql5.0을 테스트로 컴파일해 보았다. 환경은 Solaris 10, SunStudio 12. export PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/lib export CC=cc LD_LIBRARY_PATH=/usr/lib 위와이 환경을 잡아 놓고 cc로 컴파일 마지막에 워닝&#8230; ld: warning: file /usr/sfw/lib/libstdc++.so: attempted multiple inclusion of file 설치하니 잘 작동한다.]]></description>
			<content:encoded><![CDATA[<p>sun studio도 다운로드하여 사용가능하게 됨에 따라서 mysql5.0을 테스트로 컴파일해 보았다.</p>
<p>환경은 Solaris 10, SunStudio 12.</p>
<blockquote><p>export PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/lib<br />
export CC=cc<br />
LD_LIBRARY_PATH=/usr/lib</p></blockquote>
<p>위와이 환경을 잡아 놓고 cc로 컴파일</p>
<p>마지막에 워닝&#8230;</p>
<ul>ld: warning: file /usr/sfw/lib/libstdc++.so: attempted multiple inclusion of file</ul>
<p>설치하니 잘 작동한다.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/132/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>solaris10 oracle10g설치</title>
		<link>http://blog.boxcorea.com/wp/archives/130</link>
		<comments>http://blog.boxcorea.com/wp/archives/130#comments</comments>
		<pubDate>Wed, 28 May 2008 14:09:53 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[DATABASE]]></category>
		<category><![CDATA[Solaris(솔라리스)]]></category>
		<category><![CDATA[oracle10g]]></category>
		<category><![CDATA[solaris10]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=130</guid>
		<description><![CDATA[운영환경: Solaris10, 127127-11, 오라클 화일:  10gr2_db_sol.cpio.gz oracle 계정관련: id: oracle, group: dba .profile의 내용(bash 쉘) export ORACLE_BASE=/oracle; export ORACLE_HOME=/oracle/product/10gr2; export ORACLE_SID=fox; export ORACLE_OWNER=oracle; export ORACLE_PATH=$ORACLE_HOME/bin; export ORACLE_DOC=$ORACLE_HOME/ocommon/nls/admin/data; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib; PATH=$PATH:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/network/admin; export PATH; LANG=c; oracle 계정으로 로그인한후 runInstaller를 실행시킨후 진행하면 됨. 데이타베이스생성은 나중에 한다. 오라클 설치후, 데이타베이스를 생성하기위해서 아래의 명령을 실행  oracle$ $ORACLE_HOME/bin/dbca out of memory [...]]]></description>
			<content:encoded><![CDATA[<p>운영환경: Solaris10, 127127-11,</p>
<p>오라클 화일:  10gr2_db_sol.cpio.gz</p>
<p>oracle 계정관련: id: oracle, group: dba</p>
<p>.profile의 내용(bash 쉘)</p>
<blockquote><p>export ORACLE_BASE=/oracle;<br />
export ORACLE_HOME=/oracle/product/10gr2;<br />
export ORACLE_SID=fox;<br />
export ORACLE_OWNER=oracle;<br />
export ORACLE_PATH=$ORACLE_HOME/bin;<br />
export ORACLE_DOC=$ORACLE_HOME/ocommon/nls/admin/data;</p>
<p>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib;<br />
PATH=$PATH:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:$ORACLE_HOME/bin:$ORACLE_HOME/network/admin;<br />
export PATH;<br />
LANG=c;</p></blockquote>
<p>oracle 계정으로 로그인한후 runInstaller를 실행시킨후 진행하면 됨. 데이타베이스생성은 나중에 한다.</p>
<p>오라클 설치후, 데이타베이스를 생성하기위해서 아래의 명령을 실행 </p>
<blockquote><p>oracle$ $ORACLE_HOME/bin/dbca</p></blockquote>
<p>out of memory 에러. 커널 파라메터를 수정한다. (/etc/system 화일에 다음의 내용을 추가)</p>
<blockquote><p>set shmsys:shminfo_shmmax=4294967295<br />
set shmsys:shminfo_shmmin=1<br />
set shmsys:shminfo_shmmni=100<br />
set shmsys:shminfo_shmseg=10<br />
set semsys:seminfo_semmns=1024<br />
set semsys:seminfo_semmsl=256<br />
set semsys:seminfo_semmni=100<br />
set semsys:seminfo_semvmx=32767<br />
set noexec_user_stack=1</p></blockquote>
<p>커널파라메타 설정후 재부팅을 한다. 이후, 데이타베이스생성은 에러없이 진행되었다.</p>
<p>리스너 생성은 netca 를 이용한다.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/130/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zfs 사용기?</title>
		<link>http://blog.boxcorea.com/wp/archives/129</link>
		<comments>http://blog.boxcorea.com/wp/archives/129#comments</comments>
		<pubDate>Tue, 27 May 2008 06:49:28 +0000</pubDate>
		<dc:creator>poss</dc:creator>
				<category><![CDATA[Application(어플리케이션)]]></category>
		<category><![CDATA[Solaris(솔라리스)]]></category>
		<category><![CDATA[raidz]]></category>
		<category><![CDATA[solaris10]]></category>
		<category><![CDATA[zfs]]></category>
		<category><![CDATA[zpool]]></category>

		<guid isPermaLink="false">http://blog.boxcorea.com/wp/?p=129</guid>
		<description><![CDATA[오랫동안 사용하던 E450이 문제가 있어서 수리를 하면서, 그동안 사용하던 solaris9를 solaris10으로 다시 설치했다. disksuit로 구성을 하려다가 오래전에 본 비디오가 생각나서 zfs로 구성을 해 보기로 했다. 개념은 굉장히 간단하며, 사용방법 또한 metadb를 구성하는 것보다 간단하다. 하지만, 아직 확실한 개념 정립이 되지 않아서&#8230; 사용하는 디스크는 모두 6개로, 9GB 3개와 18GB 3개다. 9GB 1개는 OS를 설치했고, 나머지는 모두 사용하지 [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>오랫동안 사용하던 E450이 문제가 있어서 수리를 하면서, 그동안 사용하던 solaris9를 solaris10으로 다시 설치했다. disksuit로 구성을 하려다가 오래전에 본 비디오가 생각나서 zfs로 구성을 해 보기로 했다.</p></blockquote>
<p>개념은 굉장히 간단하며, 사용방법 또한 metadb를 구성하는 것보다 간단하다. 하지만, 아직 확실한 개념 정립이 되지 않아서&#8230;</p>
<p><span id="more-129"></span></p>
<p>사용하는 디스크는 모두 6개로, 9GB 3개와 18GB 3개다. 9GB 1개는 OS를 설치했고, 나머지는 모두 사용하지 않는 상태다. 디스크는 아래와 같다</p>
<blockquote><p>bash-3.00# format<br />
Searching for disks&#8230;done<br />
AVAILABLE DISK SELECTIONS:<br />
       0. c0t0d0 &lt;SUN9.0G cyl 4924 alt 2 hd 27 sec 133&gt;<br />
          <a>/pci@1f,4000/scsi@3/sd@0,0</a><br />
       1. c0t1d0 &lt;FUJITSU-MAE3091L SUN9.0G-0706-8.43GB&gt;<br />
          <a>/pci@1f,4000/scsi@3/sd@1,0</a><br />
       2. c0t2d0 &lt;IBM-DDRS39130SUN9.0G-S98E-8.43GB&gt;<br />
          <a>/pci@1f,4000/scsi@3/sd@2,0</a><br />
       3. c2t0d0 &lt;FUJITSU-MAG3182L SUN18G-1111-16.87GB&gt;<br />
          <a>/pci@1f,4000/scsi@4/sd@0,0</a><br />
       4. c3t2d0 &lt;SEAGATE-ST318203LSUN18G-034A-16.87GB&gt;<br />
          <a>/pci@1f,4000/scsi@4,1/sd@2,0</a><br />
       5. c3t3d0 &lt;SEAGATE-ST318203LC-0002-16.96GB&gt;<br />
          <a>/pci@1f,4000/scsi@4,1/sd@3,0</a><br />
Specify disk (enter its number):</p></blockquote>
<p>먼저, zpool을 사용하여 디스크 풀(이름은 fox_pool로 했다)을 만든다. (18GB 짜리 3개)</p>
<blockquote><p>#zpool create fox_pool c2t0d0 c3t2d0 c3t3d0</p>
<p>#zpool list<br />
NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT<br />
fox_pool               58.8G    102K   58.7G     0%  ONLINE     -</p></blockquote>
<p>9GB 디스크를 하나 더 추가했다.</p>
<blockquote><p> #zpool add -f fox_pool c0t2d0</p></blockquote>
<p>예전의 disk suit이 디스크 size에 민감했던 반면에, zfs는 디스크 size가 달라도 잘 추가가 된다.  상태를 확인해보면,</p>
<blockquote><p># zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
 scrub: none requested<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          c2t0d0    ONLINE       0     0     0<br />
          c3t2d0    ONLINE       0     0     0<br />
          c3t3d0    ONLINE       0     0     0<br />
          c0t2d0    ONLINE       0     0     0</p>
<p>errors: No known data errors</p></blockquote>
<p>이렇게  pool을 생성하면 /에 pool이름이 자동으로 마운트되어 사용가능한 상태가 된다. 이게 영 맘에 안들어서 zpool destroy로 만든 pool을 삭제하고 다시 생성했다(마운트하는 방법을 몰라서&#8230; ;ㅡㅡ)</p>
<blockquote><p>#zpool create -f -m /export/home fox_pool c2t0d0 c3t2d0 c3t3d0 c0t2d0</p></blockquote>
<p>그런데, 이것이 굳이 이럴 필요가 있는것인지 알 수가 없다. 왜냐하면, zfs 로  /export/home 에 zfs를 마운트할 수 있기 때문이다. 즉, 하나의 디스크 풀을 각기 다른 디렉토리에 마운트 할 수 있는것 같다. 그래서 oracle 프로그램용으로 zfs를 생성해서 마운트 해보았다.</p>
<blockquote><p> #zfs create fox_pool/oracle mount /oracle  &#8212;&gt; error</p>
<p>#zfs create fox_pool/oracle</p>
<p># zfs list<br />
NAME              USED  AVAIL  REFER  MOUNTPOINT<br />
fox_pool          130K  57.8G    31K  /export/home<br />
fox_pool/oracle  24.5K  57.8G  24.5K  /export/home/oracle</p></blockquote>
<p>생성은 잘 되었지만, 문제가 있다. 나는 oracle을 /에 마운트 하고 싶은 것이다.</p>
<blockquote><p># zfs destroy fox_pool/oracle<br />
# zfs list<br />
NAME       USED  AVAIL  REFER  MOUNTPOINT<br />
fox_pool  99.5K  57.8G    30K  /export/home</p></blockquote>
<p>그래서 삭제를 해 버렸다.</p>
<p>여기서 어떻게 해야할지 모르겠다&#8230;&#8230;   자, 답을 알아냈다</p>
<blockquote><p>#zfs create fox_pool/oracle<br />
#zfs set mountpoint=/oracle fox_pool/oracle</p></blockquote>
<p>마운트 포인트를 변경하니 해결이 된다.</p>
<p>자, 여기서, 일부러 에러를 유발하여 복구시켜보았다.</p>
<blockquote><p>#dd if=/dev/urandom of=/dev/c3t3d0s0 bs=1024 count=10000</p></blockquote>
<p>s0는 디스크들의 정보가 기록되는 슬라이스로 보이는데, 이곳을 쓰레기 값으로 채워넣은 것이다.</p>
<blockquote><p>#zpool scrub fox_pool</p></blockquote>
<p>이 에러는 복구가 되지 않았다. 사실 내가 원하는것은 이것이 아니었다. 그 후 여러번의 시행 착오를 거쳐서 알아낸 것은, zpool 생성시 어떤 옵션도 주지 않으면 디스크들이 stripe 로 묶이는 것이며, mirror 옵션을 주던가 아니면 가장 중요한, raidz 옵션을 주는 것이다.  사실 내가 원하던 것은 Raid5 였다.  mirror도 좋지만, 디스크 두개중 한개밖에 사용할 수 없으니까.</p>
<p>아무튼, Raid-Z 로 디스크를 구성했다. Raid5와 다른점은 디스크 두개로도 구성이 가능하다는 점이다. 사실 이 경우는 mirror와 별 차이가 없는것 같다.</p>
<blockquote><p># zpool create fox_pool raidz c2t0d0 c3t2d0      <br />
# zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
 scrub: none requested<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          raidz1    ONLINE       0     0     0<br />
            c2t0d0  ONLINE       0     0     0<br />
            c3t2d0  ONLINE       0     0     0</p>
<p>errors: No known data errors<br />
# df -h</p>
<p>fox_pool                16G    24K    16G     1%    /fox_pool</p>
<p># zpool list<br />
NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT<br />
fox_pool               33.5G    178K   33.5G     0%  ONLINE     -</p></blockquote>
<p>두 개의 디스크에 다시 에러를 유발시킨다. 여기서는 두번째 디스크 c3t2d0s0에 쓰레기값을 넣었다.</p>
<blockquote><p># zpool scrub fox_pool<br />
# zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
status: One or more devices has experienced an unrecoverable error.  An<br />
        attempt was made to correct the error.  Applications are unaffected.<br />
action: Determine if the device needs to be replaced, and clear the errors<br />
        using &#8216;zpool clear&#8217; or replace the device with &#8216;zpool replace&#8217;.<br />
   see: <a href="http://www.sun.com/msg/ZFS-8000-9P">http://www.sun.com/msg/ZFS-8000-9P</a><br />
 scrub: scrub completed with 0 errors on Tue May 27 22:00:49 2008<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          raidz1    ONLINE       0     0     0<br />
            c2t0d0  ONLINE       0     0     0<br />
            c3t2d0  ONLINE       0     0    <span style="#ff0000;">27</span></p>
<p>errors: No known data errors</p></blockquote>
<p>에러를 수정하는 방법에는 두가지가 있다. clear나 replace하는 방법이다. 나는 디스크가 하나 더 있기때문에, replace했다.</p>
<blockquote><p>#zpool replace fox_pool c3t2d0 c3t3d0<br />
# zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
 scrub: resilver completed with 0 errors on Tue May 27 22:02:22 2008<br />
config:</p>
<p>        NAME           STATE     READ WRITE CKSUM<br />
        fox_pool       ONLINE       0     0     0<br />
          raidz1       ONLINE       0     0     0<br />
            c2t0d0     ONLINE       0     0     0<br />
           <span style="#ff0000;"> replacing</span>  ONLINE       0     0     0<br />
              c3t2d0   ONLINE       0     0    27<br />
              c3t3d0   ONLINE       0     0     0</p>
<p>errors: No known data errors</p></blockquote>
<p>잠시후 확인해보면 디스크가 바뀌어 있는것을 확인 할 수 있다.</p>
<blockquote><p> zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
 scrub: scrub completed with 0 errors on Tue May 27 22:09:20 2008<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          raidz1    ONLINE       0     0     0<br />
            c2t0d0  ONLINE       0     0     0<br />
            <span style="#ff0000;">c3t3d0</span>  ONLINE       0     0     0</p>
<p>errors: No known data errors</p>
<p> </p></blockquote>
<p> fox_pool에 남은 c3t2d0를 추가하기 위하여 zpool add명령을 사용했다.</p>
<p>결과는 별로다. 디스크가 raidz로 추가되는 것이 아니라, 기존의 raidz1과 stripe로 묶여버린 것이다. 물론, raidz 옵션을 추가할때 넣어봤지만, 이경우역시 작동되지 않았다.</p>
<blockquote><p># zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
 scrub: none requested<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          <span style="#ff0000;">raidz1</span>    ONLINE       0     0     0<br />
            c2t0d0  ONLINE       0     0     0<br />
            c3t3d0  ONLINE       0     0     0<br />
          <span style="#ff0000;">c3t2d0</span>    ONLINE       0     0     0</p>
<p>errors: No known data errors</p></blockquote>
<p> 그래서 다시 디스크 세개로 fox_pool을 생성하였으며, 역시 에러를 유발한 후 테스트 하였다.</p>
<blockquote><p># zpool scrub fox_pool<br />
# zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
status: One or more devices has experienced an unrecoverable error.  An<br />
        attempt was made to correct the error.  Applications are unaffected.<br />
action: Determine if the device needs to be replaced, and clear the errors<br />
        using &#8216;zpool clear&#8217; or replace the device with &#8216;zpool replace&#8217;.<br />
   see: <a href="http://www.sun.com/msg/ZFS-8000-9P">http://www.sun.com/msg/ZFS-8000-9P</a><br />
 scrub: scrub completed with 0 errors on Tue May 27 21:44:42 2008<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          raidz1    ONLINE       0     0     0<br />
            c2t0d0  ONLINE       0     0     0<br />
            c3t2d0  ONLINE       0     0     0<br />
            c3t3d0  ONLINE       0     0    <span style="#ff0000;">38</span></p>
<p>errors: No known data errors</p></blockquote>
<p>같은방식으로 에러를 유발했다. c3t3d0의 체크섬이 38이다. 이것은 아래 명령으로 수정가능하다.</p>
<blockquote><p>bash-3.00# zpool clear fox_pool c3t3d0<br />
bash-3.00# zpool status<br />
  pool: fox_pool<br />
 state: ONLINE<br />
 scrub: scrub completed with 0 errors on Tue May 27 21:44:42 2008<br />
config:</p>
<p>        NAME        STATE     READ WRITE CKSUM<br />
        fox_pool    ONLINE       0     0     0<br />
          raidz1    ONLINE       0     0     0<br />
            c2t0d0  ONLINE       0     0     0<br />
            c3t2d0  ONLINE       0     0     0<br />
            c3t3d0  ONLINE       0     0     <span style="#ff0000;">0</span></p>
<p>errors: No known data errors</p></blockquote>
<p>다음은 snapshot을 만들어 보았다. snapshot은 만드는 시점의 데이타를 한번만 반영하는것 같다. 말 그대로 스냅샷을 수행하던 시점의 백업을 만드는 것 같다.</p>
<p>fox_pool에 zfs로 화일시스템을 만들고 세개의 화일(test.txt, last.txt, words)을 생성했다.  그리고 스냅샷을 만들었다.</p>
<blockquote><p># ls -al<br />
total 576<br />
drwxr-xr-x   2 root     sys            5 May 27 22:26 .<br />
drwxr-xr-x   3 root     sys            3 May 27 22:25 ..<br />
-rw-r&#8211;r&#8211;   1 root     root        7105 May 27 22:26 last.txt<br />
-rw-r&#8211;r&#8211;   1 root     root       16566 May 27 22:26 test.txt<br />
-r&#8211;r&#8211;r&#8211;   1 root     root      206663 May 27 22:26 words</p>
<p># zfs snapshot <a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a><br />
bash-3.00# zfs list<br />
NAME                  USED  AVAIL  REFER  MOUNTPOINT<br />
fox_pool              424K  33.1G  35.3K  /fox_pool<br />
fox_pool/home         316K  33.1G   316K  /fox_pool/home<br />
<a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a>      0      -   316K  -</p>
<p># rm words<br />
# ls -al<br />
total 58<br />
drwxr-xr-x   2 root     sys            4 May 27 22:37 .<br />
drwxr-xr-x   3 root     sys            3 May 27 22:25 ..<br />
-rw-r&#8211;r&#8211;   1 root     root        7105 May 27 22:26 last.txt<br />
-rw-r&#8211;r&#8211;   1 root     root       16566 May 27 22:26 test.txt<br />
bash-3.00# zfs snapshot <a href="mailto:fox_pool/home@snap2">fox_pool/home@snap2</a><br />
bash-3.00# zfs list<br />
NAME                  USED  AVAIL  REFER  MOUNTPOINT<br />
fox_pool              467K  33.1G  35.3K  /fox_pool<br />
fox_pool/home         348K  33.1G  57.9K  /fox_pool/home<br />
<a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a>   290K      -   316K  -<br />
<a href="mailto:fox_pool/home@snap2">fox_pool/home@snap2</a>      0      -  57.9K  -</p></blockquote>
<p>스냅샷은 /fox_pool/home/.zfs/snapshot/snap1 과, /fox_pool/home/.zfs/snapshot/snap2에 각각 저장되어 있다.</p>
<blockquote><p># pwd<br />
/fox_pool/home/.zfs/snapshot/snap2<br />
# ls<br />
last.txt  test.txt<br />
# cd ../snap2<br />
# ls<br />
last.txt  test.txt</p></blockquote>
<p>snap1로 롤백을 해보았다.</p>
<blockquote><p># zfs rollback <a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a><br />
cannot rollback to <a href="mailto:'fox_pool/home@snap1'">&#8216;fox_pool/home@snap1&#8242;</a>: more recent snapshots exist<br />
use &#8216;-r&#8217; to force deletion of the following snapshots:<br />
<a href="mailto:fox_pool/home@snap2">fox_pool/home@snap2</a><br />
# zfs rollback -r <a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a><br />
cannot unmount &#8216;/fox_pool/home&#8217;: Device busy<br />
bash-3.00# pwd<br />
/fox_pool/home<br />
# ls<br />
# cd ..<br />
# zfs rollback -r <a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a><br />
# cd home<br />
# ls<br />
last.txt  test.txt  words<br />
 </p></blockquote>
<p>이때, 나중에 만든 snap2는 snap1이 만들어지던 시점에는 존재하지않았기때문에, 지워져 버렸다.. <img src='http://blog.boxcorea.com/wp/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  그래서 경고메시지가 나왔었군&#8230;</p>
<p>암튼, 스냅샷은 디스크를 차지하고 있으므로, 필요가 없으면 제거해준다.</p>
<blockquote><p>#zfs  destroy <a href="mailto:fox_pool/home@snap1">fox_pool/home@snap1</a></p></blockquote>
<p>스냅샷이 저장되는 디렉토리 .zfs 는 ls -al로는 확인이 되지 않았지만, 그 이후는 확인이 가능했다. 아울러, 필요한 화일을 직접 복사하는것도 가능했다.</p>
<p>여기까지 사용해본 소감은, 참 편리하다는거. newfs도 필요없고, 마운트도 필요없고. 생성속도 또한 빠르다. disksuit을 사용해야할 이유를 더 이상 찾을 수가 없다.(물론, solaris10이 아니라면 선택의 여지가 없겠지만&#8230;)</p>
<p>마지막으로 참고사이트 : <a href="http://docs.sun.com/app/docs/doc/819-5461?l=en">http://docs.sun.com/app/docs/doc/819-5461?l=en</a>  너무 늦게 발견 ;ㅡㅡ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.boxcorea.com/wp/archives/129/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

