YoungGon Lee's Weblog... Starry Night's Sun Story ...

화요일 2월 10, 2009

세컨드라이프 란?

What is Second Life? 

Second Life® is a 3-D virtual world created by its Residents. Since opening to the public in 2003, it has grown explosively and today is inhabited by millions of Residents from around the globe.

  • From the moment you enter the World you'll discover a vast digital continent, teeming with people, entertainment, experiences and opportunity. Once you've explored a bit, perhaps you'll find a perfect parcel of land to build your house or business.

  • You'll also be surrounded by the Creations of your fellow Residents. Because Residents retain intellectual property rights in their digital creations, they can buy, sell and trade with other Residents.

  • The Marketplace currently supports millions of US dollars in monthly transactions. This commerce is handled with the inworld unit of trade, the Linden™ dollar, which can be converted to US dollars at several thriving online Linden dollar exchanges.

Welcome to the Second Life world. We look forward to seeing you inworld.

세컨드라이프는 전적으로 사용자가 창조하고 참여하여 이루어지는 영속적인 온라인 3D 가상 세계입니다. 빠르게 확장되는 방대한 공간 속에서, 사용자는 자신이 꿈꾸는 모든 일을 할 수 있으며 상상하는 인물을 창조 또는 자신이 그 인물이 될 수 있습니다.
세컨드라이프에 있는 컨텐츠 개발 도구로 자신이 상상한 거의모든 형태의 컨텐츠를 만들수있으며, 다른 사용자들과 실시간 팀웍 으로 프로젝트를 수행할 수 있습니다. 사용자가 다양하게 정의할 수 있는 세밀한 아바타 를 통해 개성적이고 독자적인 존재가 될 수 있습니다.
또한 강력한 물리 시뮬레이션과 지속적인 인구 증가로 인해 사용자는 수만에이커의 시뮬레이션 토지에서 상호 작용이 가능한 가상세계에 깊히 몰두할 수 있습니다. 토지의 개발 및 소유, 이에따른 전자 화폐의 실제 화폐로의 환전기능과 3D 컨텐츠의 디자인재판매로 세컨드라이프에서 실제 비즈니스를 구축할 수 있습니다.

풍부한 상상력을 가진 다채로운 사람들이 존재하는 세계가 어떨지 궁굼하시다면 간단한 Second Life application설치를 통해 경험하실 수 있습니다. 또한 도움을 줄 가이드를 언제나 세컨드라이프에서 만날 수 있습니다.

3D 컨텐츠 창안자, 사업가, 게임 개발자, 예술가 또는 소프트웨어 개발자라면, 세컨드라이프에 흥미를 느낄 것입니다. 지금까지 어디에서도 볼 수 없었던 창조적인 자기 표현을 위한 기회가 있는 세컨드라이프로 지금 바로 들어와 샌드박스(Sandbox)를 찾아 자신만의 세계를 구축해 보십시오.

세컨드라이프의 가능성은 무한 합니다.


플레이
다양한 스타일의 In-World 게임

  • 게이머들이 게이머를 위해 만든 수 십여 개의 멀티플레이어용 또는 싱글플레이어용 게임을 세컨드라이프 내에서 즐길 수 있습니다.
  • 자신이 직접 만든 FPS, 판타지 RPG, 퍼즐 및 전략 게임으로 다른 거주민 게이머들과 즐길 수 있습니다.
  • 전 세계에 걸친 무상 아이템 찾기 게임을 하거나 모든 주민이 용의자로 지목되는 암살 게임에서 희생자를 추적할 수도 있습니다.
  • 보드 게임 또는 이야기 중심의 어드벤처게임을 즐기거나 특별한 기술을 연마할 수 있는 롤플레잉 게임, 일상적인 사교 게임을 제작, 다른 게이머와 즐길 수 있습니다.


소유
자신의 토지에서 노력과 창조의 열매 거두기

  • 사유지를 획득하고 세컨드라이프에서 창조한 모든 것에 대한 권한 유지
  • 토지의 구입, 대여 및 판매
  • 자신의 토지를 개인적 용도, 비즈니스 또는 각종 프로젝트를 위해 개발
  • 자산 획득을 위해 온라인 경매에서 경쟁
  • 세컨드라이프에서의 창조물에 대한 IP 권한 유지

토요일 12월 06, 2008

 Info about MySQL 5.1 is now live at dev.mysql.com, also:

On Monday, we'll do a press release & update content at http://mysql.com and http://sun.com/mysql.

In addition to MySQL 5.1, we'll be following up with content on MySQL Query Analyzer, a feature which was recently released as a part of MySQL Enterprise.  Info on Query Analyzer is available at http://www.mysql.com/products/enterprise/query.html.

 

화요일 8월 19, 2008

About a tool used in the Defcon 16  (URL: http://blogs.zdnet.com/security/?p=1735)

But I've never used any tool, it has ventured blah.

Next year, .... Well, I hope.

+++++++++++++++++++++++++++++++++++++++++

Beholder – by Nelson Murilo and Luis Eduardo

Description: An open source wireless IDS program
Homepage Link: http://www.beholderwireless.org/
Email Address: bh@beholderwireless.org

The Middler – by Jay Beale

Description: The end-all be-all of MITM tools
Homepage Link: http://www.themiddler.com/ (Online?)
Preface Link: http://www.intelguardians.com/themiddler.html

ClientIPS – by Jay Beale

Description: An open source inline “transparent” client-side IPS
Homepage Link: http://www.ClientIPS.org/  (Online?)

Marathon Tool – by Daniel Kachakill

Description: A Blind SQL Injection tool based on heavy queries
Download Link: DEFCON 16 CD. No online link found.
Email Address: dani@kachakil.com

The Phantom Protocol – by Magnus Brading

Description: A Tor-like protocol that fixes some of Tor’s major attack vectors
Homepage Link: http://code.google.com/p/phantom
Email Address: brading@fortego.se

ModScan – by Mark Bristow

Description: A SCADA Modbus Network Scanner
Homepage Link: http://modscan.googlecode.com/
Email Address: mark.bristow@gmail.com

Grendel Scan – by David Byrne

Description: Web Application scanner that searches for logic and design flaws as well as the standard flaw seen in the wild today (SQL Injection, XSS, CSRF)
Homepage Link: http://grendel-scan.com/

iKat – interactive Kiosk Attack Tool  (This site has an image as a banner that is definitely not safe for work! – You have been warned) by Paul Craig

Description: A web site that is dedicated to helping you break out of Kiosk jails
Homepage Link: http://ikat.ha.cked.net
Email Address: paul.craig@security-assessment.com

DAVIX – by Jan P. Monsch and Raffael Marty

Description: A SLAX based Linux Distro that is geared toward data/log visualization
Homepage Link: http://code.google.com/p/davix/
Download Link: http://www.geekceo.com/davix/davix-0.5.0.iso.gz
Email Addresses: jan.monsch@iplosion.com and raffy@secviz.org

CollabREate – by Chris Eagle and Tim Vidas

Description: An IDA Pro plugin with a server backend that allows multiple people to collaborate on a single RE (reverse engineering) project.
Homepage Link: http://www.idabook.com/defcon
Email Addresses: cseagle@gmail.com and tvidas@gmail.com

Dradis – by John Fitzpatrick

Description: A tool for organizing and sharing information during a penetration test
Homepage: http://dradis.sourceforge.net
Email Address: john.fitzpatrick@mwrinfosecurity.com

Squirtle – by Kurt Grutzmacher

Description: A Rouge Server with Controlling Desires that steals NTLM hashes.
Homepage: http://code.google.com/p/squirtle (Live?)
Email Address: grutz@jingojango.net

WhiteSpace – by Kolisar

Description: A script that can hide other scripts such as CSRF and iframes in spaces and tabs
Download Link: DEFCON 16 CD

VoIPer – by nnp

Description: VoIP automated fuzzing tool with support for a large number of VoIP applications and protocols
Homepage Link: http://voiper.sourceforge.net/

Barrier – by Errata Security

Description: A browser plugin that pen-tests every site that you visit.
Homepage Link: http://www.erratasec.com
Email Address: sales@erratasec.com

Psyche – by Ponte Technologies

Description: An advanced network flow visualization tool that is not soley based on time.
Homepage Link: http://psyche.pontetec.com/

SA Exploiter - GUI SQL Inj Tool

Fast-Track 3 - Pen Test Toolkit
http://securestate.com/pages/free-tools.aspx


일요일 7월 27, 2008

http://wikis.sun.com/display/SunCluster/Sun+Cluster+3.2+2-08+Release+Notes

Sun Cluster 3.2 2-08 Release Notes

Sun Cluster 3.2 2/08 Release Notes for Solaris OS

This document provides the following information for Sun™ Cluster 3.2 2/08 software.

What's New in the Sun Cluster 3.2 2/08 Software

This section provides information related to new features, functionality, and supported products in the Sun Cluster 3.2 2/08 software. This section also provides information on any restrictions that are introduced in this release.

New Features and Functionality

This section describes new features in the Sun Cluster 3.2 2/08 software.

The following new features are provided in the May 2008 Core patch to Sun Cluster 3.2 2/08 software. 

The following new features are provided in the initial Sun Cluster 3.2 2/08 release.

(SPARC) Support for Oracle 11g

Sun Cluster software now supports Oracle 11g in HA-Oracle and Oracle RAC configurations on SPARC based platforms. Procedures in the Sun Cluster 3.2 2/08 documentation set are valid for Oracle 11g. If an instruction is specific to a particular Oracle version, use instructions that apply to Oracle 10g for an Oracle 11g configuration.

(SPARC) Support for Logical Domains (LDoms) Guest Domains as Cluster Nodes

You can now configure Logical Domains (LDoms) 1.0.3 guest domains as virtual Sun Cluster nodes. In this configuration, a guest domain node is viewed the same as a physical node of a cluster.

You can configure Logical Domains (LDoms) guest and I/O domains as virtual Sun Cluster nodes. In other words, you can create a clustered pair, pair+N, N+1, and N*N cluster that consists of any combination of physical machines, LDoms I/O domains, and LDoms guest domains. You can also create clusters that consist of only LDoms I/O domains or only guest domains.

The following sections describe topologies, requirements and restrictions, and installation and configuration procedures for guest domains as cluster nodes:

SPARC: LDom Guest Domains: Cluster in a Box Topology

In this Logical Domains (LDoms) guest domain topology, a cluster and every node within that cluster are located on the same server. Each LDoms guest domain node acts the same as a physical node in a cluster. To preclude your having to include a quorum device, this configuration includes three nodes rather than only two.

In this topology, you do not need to connect each virtual switch (vsw) for the private network to a physical network because they need only communicate with each other. In this topology, cluster nodes can also share the same storage device, as all cluster nodes are located on the same server. To learn more about guidelines for using and installing LDoms domains in a cluster, see SPARC: Guidelines for Logical Domains in a Cluster, SPARC: How to Install Logical Domains Software and Create Domains, and SPARC: Configuring LDoms Domains as Cluster Nodes.

This topology does not provide high availability, as all nodes in the cluster are located on the same server. However, developers and administrators might find this topology useful for testing and other non-production tasks. This topology is also called a "cluster in a box".

The following figure illustrates a cluster in a box configuration.

SPARC: Cluster in a Box Topology

SPARC: LDoms Guest Domains: Single Cluster Spans Two Different Servers Topology

In this Logical Domains (LDoms) guest domain topology, a single cluster spans two different servers and each cluster comprises one node on each server. Each LDoms guest domain node acts the same as a physical node in a cluster. To learn more about guidelines for using and installing LDoms domains in a cluster, see SPARC: Guidelines for Logical Domains in a Cluster, SPARC: How to Install Logical Domains Software and Create Domains, and SPARC: Configuring LDoms Domains as Cluster Nodes.

The following figure illustrates a configuration in which a single cluster spans two different servers.

SPARC: Single Cluster Spans Two Different Servers

SPARC: LDoms Guest Domains: Clusters Span Two Different Servers Topology

In this Logical Domains (LDoms) guest domain topology, each cluster spans two different servers and each cluster comprises one node on each server. Each LDoms guest domain node acts the same as a physical node in a cluster. In this configuration, because both clusters share the same interconnect switch, you must specify a different private network address on each cluster. Otherwise, if you specify the same private network address on clusters that share an interconnect switch, the configuration fails.

To learn more about guidelines for using and installing LDoms domains in a cluster, see SPARC: Guidelines for Logical Domains in a Cluster, SPARC: How to Install Logical Domains Software and Create Domains, and SPARC: Configuring LDoms Domains as Cluster Nodes.

The following figure illustrates a configuration in which more than a single cluster spans two different servers.

SPARC: Clusters Span Two Different Servers

SPARC: LDom Guest Domains: Redundant I/O Domains

In this Logical Domains (LDoms) guest domain topology, multiple I/O domains ensure that guest domains, or nodes within the cluster, continue to operate if an I/O domain fails. Each LDoms guest domain node acts the same as a physical node in a cluster.

In this topology, the guest domain runs IP network multipathing (IPMP) across two public networks, one through each I/O domain. Guest domains also mirror storage devices across different I/O domains. To learn more about guidelines for using and installing LDoms domains in a cluster, see SPARC: Guidelines for Logical Domains in a Cluster, SPARC: How to Install Logical Domains Software and Create Domains, and SPARC: Configuring LDoms Domains as Cluster Nodes.

The following figure illustrates a configuration in which redundant I/O domains ensure that nodes within the cluster continue to operate if an I/O domain fails.

SPARC: Redundant I/O Domains

토요일 3월 22, 2008

Reliable indicators  MTBF, AFR
It is widely regarded as a common indicator of HDD < 'MTBF (Mean Time Between Failure)'. Interpretation of the ' The average time between failures', which represents the lifetime of HDD, it is often a tendency to think.  In other words, which is different from that used to extrapolate meaning.
The longer the high MTBF reliability definitely would  however,  MTBF reliability of those simply numerical value  degree specifically whether it is harder to know. 
So reliability of the other indicators are indicating, that 'AFR (Annual Failure Rate)'.


 

 
MTBF is the relationship between the above formula and the AFR will be represented. This decreases the longer MTBF AFR that can be verified. It is widely regarded as a common indicator of HDD < 'MTBF (Mean Time Between Failure)'.  Interpretation of the 'average time between failures', which represents the lifetime of HDD, it is often a tendency to think. These days, and HDD production of 500,000 hours MTBF is at least as long as it topped the 2.5 million hours,  the number of years  to an equivalent of 57 this year to 285 miles across. If you think the life of the MTBF HDD semipnida this figure is meaningless.

금요일 2월 15, 2008

Step list
detail list
1 Copy oldDB1 to newDB1 1. /etc directory to newDB1 temp move.
   old:# cd /
   old:# tar cf ./tmp/etc.tar ./etc
   new:# cd /opt/SSVC ; tar xf ./etc.tar
2 oldDB1 down 1. DB1 cluster remove.
   # metaset -s setrac -d -M -h eTradeDB1
   # scsetup
2. oldDB1 server down
   # sync ; init 0
3 newDB1 Cluster private network connection
1. oldDB1 to newDB1 private network 
   • IO06/C3V2  : ce2
   • IO07/C5V0  : ce3
4 Change newDB1 hostname, IP
1. newDB1 hostname, IP change
   old DB1의 etc backup  file copy
      • hosts, nodename, passwd, group, shadow
      • hostname.ce0, hostname.ce5, hostname.ce7
      • nsswitch.conf, defaultrouter, netmasks, system, ntp.conf, ntp.conf.cluster
5 Cluster resource unmanaged 1. Cluster resource offline.
   # scswitch -g rac-framework-rg -n -j rac-svm
   # scswitch -g rac-framework-rg -n -j rac-udlm-rs
   # scswitch -g rac-framework-rg -n -j rac-framework-rs
   # scswitch -g oldDB1-rg -n -j old-db1
   # scswitch -g DB1-VIP-RG -n -j db1-lh-rs
2. resource group unmanaged.
   # scswitch -u g rac-framework-rg
   # scswitch -u oldDB1-rg
   # scswitch -u DB1-VIP-RG
6 newDB1 EMC Fiber connect
1. newDB1 EMC  Fiber channel connect
   • IO06/C3V0  : c2
   • IO07/C3V0  : c3
   • EMC power path setup.
   • EMC assign  newDB1 reboot.
      # sync ; reboot -- -r
2. Check  newDB1 reboot LUNs .
   • Check old DB1  format .
      ; c2 : 160ea LUNs
      ; c3 : 160ea LUNs
3. Check reboot hostname, IP
   • ce0 : 210.205.68.15
   • ce0:1 : 210.205.68.16
   • ce5 : 210.205.68.17
   • ce7 : 192.168.166.227
7 newDB1 SunCluster setup
1. ce private transport
   # echo "set ce:ce_taskq_disable=1" >> /etc/system
2. Java ES install
   # cd /cdrom/cdrom0/<solaris_arch>
   # ./installer -nodisplay
      ; Check which JES agent are required • do NOT install all JES Agents
      ; Choose 'Configure Later'
3. rpcbind setting
   # svccfg
      svc:> select network/rpc/bind
      svc:/network/rpc/bind> setprop config/local_only=false
      svc:/network/rpc/bind> quit
   # svcadm refresh network/rpc/bind:default

4. Web Console

   # cd /cdrom/cdrom0/Product/SUNWEBCONSOLE
   # ./setup

5. SunCluster 3.1 U4 install.
   # cd /cdrom/cdrom0/Product/Sun_Cluster/Solaris_10/Tools
   # ./scinstall
      ; 1 --> 3 --> yes --> yes --> "enter" --> no --> eTradeDB2
         --> etradedb-sc --> "enter" --> yes --> "enter" --> 1
         --> yes --> yes  --> yes --> no(reoot) --> "enter"
         --> yes --> yes(install cont.) --> "enter" --> q --> q
6. SunCluster patch .
   # cd /sun/patch/SunCluster/3.0-3.1/3.1/10
   # unpack-patches /opt/SSVC/sc_patch
   # cd /opt/SSVC/sc_patch/10 ; ./install_patches
7. global device setting reboot
   # cat /etc/vfstab
   # sync ; init 0
   ok> boot
8 Check DID
8. DID . (check same old did )
   # scdidadm -L
9 Check Cluster
9. check scstat to oldDB1 additional quorum.
   # scstat
10 Cluster config setup
10. /etc/name_to_major file
   ; Check of same DB2
11. Enable DRP
   # svcadm enable pools/dynamic
12. tcp_listen setting
   # svcprop /system/webconsole:console | grep tcp_listen
      if not true run:
   # svccfg
      svc:> select system/webconsole
      svc:/system/webconsole> setprop
      options/tcp_listen=true
      svc:/system/webconsole> quit
   # /usr/sbin/smcwebserver restart
13. Localonly disk setup.
   • make sure only local node in node list:
   # scconf -pvv | grep dsk/d<N>
   • if other nodes in node list, remove them:
   # scconf -r -D name=dsk/d<N>,nodelist=<other_phy_host>
   • set localonly on root mirror disk:
   # scconf -c -D name=dsk/d<N>,localonly=true
11 Cluster agent install
14. Suncluster Agent install.
   # cd /cdrom/cdrom0/components/suncluster_oracle_rac_framework/solaris_10/packages
   # patchadd -d .
   # cd /cdrom/cdrom0/components/suncluster_oracle_rac_svm_3.1/solaris_10/packages
   # patchadd -d . 
15. ORACLE udlm install. (EIS 3.0.4 Usage)
   • ORCLudlm version : Dev Release 06/11/04, 64bit 3.3.4.8
   # cd /cdrom/cdrom0/sun-internal/progs/SunCluster/ORALudlm
   # cp 64* /opt/SSVC ; cd /opt/SSVC
   # patchadd -d . ORCLudlm
   • check of udlm port
   /opt/SUNWudlm/etc/udlm.conf
16. SunCluster patch install.
   # cd /sun/patch/SunCluster/3.0-3.1/3.1/10
   # unpack-patches /opt/SSVC/sc_patch
   # cd /opt/SSVC/sc_patch/10 ; ./install_patches
12 SVM volume renew
17. setrac SVM member에 DB1 additional.
   # vi /var/run/nodelist
      1 ,node1> 172.16.193.1
      2 <host2> 172.16.193.2
   # metaset -s setrac -a -M -h eTradeDB1
   # msetaset -s setrac
   # metastat -s setrac
18. db1ora-set .
   # metaset -s db1ora-set -a -h DB1
   # metaset -s db1ora-set -a /dev/did/dsk/d21
   # metaset -s db1ora-set -a /dev/did/dsk/d22
   # metainit -s db1ora-set/d241 2 1 /dev/did/rdsk/d21s0 1 /dev/did/rdsk/d22s0
   # metainit -s db1ora-set/d240 -p /dev/md/db1ora-set/rdsk/d241 -o 32 -b 46137344
   # mkdir /oracle
13 Cluster resource online 19. Cluster resouce start.
   # scsetup
   # scswitch -g rac-framework-rg -e -j rac-svm
   # scswitch -g rac-framework-rg -e -j rac-udlm-rs
   # scswitch -g rac-framework-rg -e -j rac-framework-rs
   # scswitch -g DB1-rg -e -j DB1
   # scswitch -g DB1-VIP-RG -e -j db1-lh-rs
14 DB2 recommended & Cluster patch 20. DB2 recommended & Cluster patch update.
   # sync ; init 0
   ok> boot -x
   # cd /cdrom/cdrom0/sun/install ; ./setup-install.sh
   # cd /cdrom/cdrom0/sun/patch/10 ; unpack-patches /opt/SSVC
   # cd /opt/SSVC/10 ; ./install_all_patches
   # sync ; init 0
   ok> boot
   # cd /opt/SSVC/10 ; ./install_all_patches
   # cd /sun/patch/SunCluster/3.0-3.1/3.1/10
   # unpack-patches /opt/SSVC/sc_patch
   # cd /opt/SSVC/sc_patch/10 ; ./install_patches
   # sync ; init 0
   ok> boot

화요일 1월 15, 2008

There are 3 ways to replace a failed disk under volume manager
control:

1.) The GUI
2.) vxdiskadm
3.) the cli

The first 2 are well documented elsewhere, but the last one is
not. It is actually very simple and would lend itself well to
scripting.

The Process:

1.) Find the failed disk
# vxdisk list | grep failed

2.) Physically remove the disk
(Do the following if it is an FC disk)
# luxadm remove_device <enc>,<pos> (or WWN, use format)

3.) Remove disk from vxvm config
# vxdg -g <dg> -k rmdisk <dm_name>
# vxdisk rm <disk>

4.) Physically insert the disk
(If a fibre disk do this step)
# luxadm insert

5.) Have vxvm rebuild it's config database
# vxdctl enable

6.) Reinitialize the disk
# /etc/vx/bin/vxdisksetup -i <ctd>

7.) Add the disk back into the disk group
# vxdg -g <dg> -k adddisk <dm_name>=<ctd>

This is a decision point:

Mirrored boot disk?
8.) Use vxmirror so the bootblock gets created
# vxmirror -v -V -g rootdg rootmirror rootdisk
(NOTE - this will only mirror /, /usr, /var, and /swap, if
you have other volumes, either use vxdiskadm or use vxassist to
mirror the rest after this finishes
)

9.) For FC disks you need to change the boot alias to reflect the new WWN.
View and save the aliases:
# eeprom nvramrc 2> /dev/null | sed -e "1s/nvramrc=//p" -e 1d

Use vxeeprom to remove, then re-add the alias for the bootdisk
# vxeeprom devunalias <dm_name>
# vxeeprom devalias vx-<root or mirror> /dev/dsk/c#t#d#

The changes will show up after the next reboot.

Standard mirrored data disk?
8.) Start the recovery in the background
# vxrecover -sb


You should be back in action, "vxtask list" should list the plex
attach tasks.


There is one more step if this is a mirrored, encapsulated, boot
disk. Run the vxmksdpart command to create the hard slices.

10.) VXMKSDPART DOCUMENTED:

NOTE - I use c0t0d0s0 and rootdisk only as examples this
procedure will work for either disk.

Vxmksdpart writes the hard slices using the following syntax:

Usage: vxmksdpart [-f] [-g diskgroup] subdisk sliceno [tag flags]

"tag and flag" In the prtvtoc and fmthard manpage
VAR ="0x07 0x00"
USR ="0x04 0x00"
SWAP ="0x03 0x01"
HOME ="0x08 0x00"
UNASG ="0x00 0x00"
"sliceno" What disk slice you want to put the
partition on - match to vfstab
"subdisk" Use the vxprint command below to get
the volume -> subdisk mapping. Where
<dm_name> is rootdisk and rootmirror.

# vxprint -Q -g rootdg -e "pl_sd.sd_dm_name == \"rootdisk\"" -p -F "%{name:-14} %{sdaslist}"

Example for rootdisk:
rootvol-01 rootdisk-01:0
swapvol-01 rootdisk-02:0
var-01 rootdisk-03:0

The vxmksdpart commands would be (the root slice is always there):
swap
# vxmksdpart -g rootdg rootdisk-02 1 0x03 0x01
var
# vxmksdpart -g rootdg rootdisk-03 5 0x07 0x00

* Now that you have a valid vtoc - save it off to a file!
# prtvtoc /dev/dsk/c0t0d0s2 > /var/tmp/vtoc_c0t0.sav

++++++++++++++++++++++++

MOVING A "SIMPLE" VOLUME FROM ONE DG TO ANOTHER
(this was modified from Infodoc 14166 to add CLI options)

You can use this as a basis for more complex operations of a
relevant nature. Be aware that the disk can not be removed from
the current dg unless all sub-disks have been cleared.

Note: To provide an extra measure of security you should back-up
the data first.

1) Unmount the file system and/or kill the application(s) to stop all
i/o to the volume.

2) Save off the volume configuration.
# vxprint -g <dg_name> -hmvps <vol_name> > <file_name>

3) Remove the volume recursively.
GUI:
highlight the volume
basic_ops -> vol_ops -> remove volume recursively

CLI:
# vxedit -rf rm <vol_name>

4) Verify that no additional sub-disks reside on the VM disk/s and
remove it/them from the dg.
GUI:
highlight the vm disk
adv_ops -> disk_group -> remove_disks

CLI:
# vxdg -g <dg> rmdisk <dm_name> (for each disk)


5) Add the disk/s to the new disk group using the original disk
media name/s.
GUI:
bring up a view of the ssa
highlight the appropriate disk
commands -> volume_manager -> add_disk
a pop-up window appears. This is where you change the
default name to be the original dm_name.

CLI:
(if dg already exists)
# vxdg -g <dg> adddisk <dm_name>=<ctd>
(if you need to create one)
# vxdg init <dg> <dm_name>=<ctd>

6) Re-create the volume in the new DG.
# vxmake -g <dg> -d <file_name>

7) Start the volume (you may need to change it's state "vxmend"
or force start it).
GUI:
highlight the volume
adv_ops -> volume -> start_volumes -> start

CLI:
# vxvol -f start <vol_name>


8) Update vfstab to reflect new dev/vx path.

 +++++++++++++++++++++++++

VxVM Plex STATES and State Transition Commands

Plex State Transition Flowchart


Object Kernel State Plex State Transition Commands
plex DISABLED ACTIVE vxplex (-f) att vol plex

plex DETACHED IOFAIL vxmend fix clean plex
vxmend fix active plex
vxplex (-f) att vol plex
vxvol (-f) start

plex DETACHED IOFAIL vxmend fix empty plex
vxmend fix clean plex
vxmend fix active plex
vxplex (-f) att vol plex

plex DISABLED RECOVER vxtask list
- Should be a recovery
process running

plex DISABLED IOFAIL vxvol -f start volname

plex STALE ACTIVE vxplex dis plex
vxplex (-f) att vol plex

plex DISABLED STALE vxtask list
- Should be fixing itself
Otherwise:
vxplex dis plex
vxplex (-f) att vol plex

plex ENABLED STALE vxtask list
- Should be fixing itself
Otherwise:
vxplex dis plex
vxplex (-f) att vol plex

plex ENABLED DEGRADED Enters this state if disk was just added to a RAID

plex ENABLED RECOVER vxtask list
REGEN - Should be fixing itself

plex/volume
DISABLED EMPTY The volume is iether sparse (volume lager
than plex contiguous space) or the the state
is just incorrect. see SRDB ID: 20563
vxvol -f start <vol>
For LOGGING plexs
plex DISABLED STALE vxplex dis <logplex>
vxedit -rf rm <logplex>


vxassist -g <diskdg> addlog <vol> <disk>

 

 

화요일 12월 11, 2007

+++++++ e20k-b++++++++++++
e20k-b
 RAC Meta Volume

Local Filesystem (Archive / EAIARCH /EAIDATA etc) setup

metaset -s eaidb1arch -a -h e20k-b e25k-b
metaset -s eaidb2arch -a -h e25k-b e20k-b

 eaidb1arch
metaset -s eaidb1arch -a /dev/did/rdsk/d4 /dev/did/rdsk/d5 /dev/did/rdsk/d6
metainit -s eaidb1arch d112 3 1 /dev/did/rdsk/d4s0 1 /dev/did/rdsk/d5s0 1 /dev/did/rdsk/d6s0
metainit -s eaidb1arch d113 -p d112 50g
metainit -s eaidb1arch d114 -p d112 50g

newfs /dev/dm/rdsk/eaidb1arch/d113
newfs /dev/dm/rdsk/eaidb1arch/d114

 eaidb2arch
metaset -s eaidb2arch -a /dev/did/rdsk/d7 /dev/did/rdsk/d8 /dev/did/rdsk/d9
metainit -s eaidb2arch d212 3 1 /dev/did/rdsk/d7s0 1 /dev/did/rdsk/d8s0 1 /dev/did/rdsk/d9s0
metainit -s eaidb2arch d213 -p d212 50g
metainit -s eaidb2arch d214 -p d212 50g

newfs /dev/dm/rdsk/eaidb2arch/d213
newfs /global/.devices/node@1/dev/md/shared/2/rdsk/d213
newfs /dev/dm/rdsk/eaidb2arch/d214

scrgadm -a -g eaidb1-rg -h e20k-b
scrgadm -a -g eaidb2-rg -h e25k-b


scrgadm -a -g eaidb1-rg -j eaidb1arch-rs -t SUNW.HAStoragePlus -x FilesystemMountPoints=/EAI_ARCH1 -x GlobalDevicePaths=eaidb1arch -x AffinityOn=TRUE
scrgadm -a -g eaidb2-rg -j eaidb2arch-rs -t SUNW.HAStoragePlus -x FilesystemMountPoints=/EAI_ARCH2 -x GlobalDevicePaths=eaidb2arch -x AffinityOn=TRUE

 eairacdata

RAC Multi-owner DG Volume

metaset -s rac-data -a -M -h e20k-b e25k-b

scrgadm -at SUNW.rac_framework
scrgadm -at SUNW.rac_udlm
scrgadm -at SUNW.rac_svm
scrgadm -a -g rac-rg -y maximum_primaries=2 -y desired_primaries=2 -y nodelist=intdb1,intdb2
scrgadm -a -j rac-framework-rs -g rac-rg -t SUNW.rac_framework
scrgadm -a -j rac-udlm-rs -g rac-rg -t SUNW.rac_udlm -y resource_dependencies=rac-framework-rs -x port=7000
scrgadm -a -j rac-svm-rs -g rac-rg -t SUNW.rac_svm -y resource_dependencies=rac-framework-rs

metaset -s rac-data -a /dev/did/rdsk/d10 /dev/did/rdsk/d11 /dev/did/rdsk/d12 /dev/did/rdsk/d13 /dev/did/rdsk/d14 /dev/did/rdsk/d15 /dev/did/rdsk/d16 /dev/did/rdsk/d17
metainit -s rac-data d300 8 1 /dev/did/rdsk/d10s0 /dev/did/rdsk/d11s0 /dev/did/rdsk/d12s0 /dev/did/rdsk/d13s0 /dev/did/rdsk/d14s0 /dev/did/rdsk/d15s0 /dev/did/rdsk/d16s0 /dev/did/rdsk/d17s0
++++++++++++++++++++++++++++++++++++ raw devices volume +++++++++++++++++++++++++++++++++
metainit -s rac-data d301 -p  d300 4004m
metainit -s rac-data d302 -p d300 24m
metainit -s rac-data d303 -p d300 24m
metainit -s rac-data d304 -p d300 160m
metainit -s rac-data d305 -p d300 29m
metainit -s rac-data d306 -p d300 504m
metainit -s rac-data d307 -p d300 504m
metainit -s rac-data d308 -p d300 2002m
metainit -s rac-data d309 -p d300 2004m
metainit -s rac-data d310 -p d300 1004m
metainit -s rac-data d311 -p d300 2004m
metainit -s rac-data d312 -p d300 2004m
metainit -s rac-data d313 -p d300 2004m
metainit -s rac-data d314 -p d300 1004m
metainit -s rac-data d315 -p d300 2004m
metainit -s rac-data d316 -p d300 2094m
metainit -s rac-data d317 -p d300 5004m
metainit -s rac-data d318 -p d300 1004m
metainit -s rac-data d319 -p d300 504m
metainit -s rac-data d320 -p d300 2004m
metainit -s rac-data d321 -p d300 204m
metainit -s rac-data d322 -p d300 2104m
metainit -s rac-data d323 -p d300 2104m
metainit -s rac-data d324 -p d300 2104m
metainit -s rac-data d325 -p d300 4004m
metainit -s rac-data d326 -p d300 3004m
metainit -s rac-data d327 -p d300 3004m
metainit -s rac-data d328 -p d300 2004m
metainit -s rac-data d329 -p d300 2000m
metainit -s rac-data d330 -p d300 2004m
metainit -s rac-data d331 -p d300 1004m
metainit -s rac-data d332 -p d300 2004m
metainit -s rac-data d333 -p d300 2005m
metainit -s rac-data d334 -p d300 2006m
metainit -s rac-data d335 -p d300 3004m
metainit -s rac-data d336 -p d300 2004m
metainit -s rac-data d337 -p d300 704m
metainit -s rac-data d338 -p d300 2004m
metainit -s rac-data d339 -p d300 2005m
metainit -s rac-data d340 -p d300 2006m
metainit -s rac-data d341 -p d300 2007m
metainit -s rac-data d342 -p d300 204m
metainit -s rac-data d343 -p d300 504m
metainit -s rac-data d344 -p d300 204m
metainit -s rac-data d345 -p d300 2104m
metainit -s rac-data d346 -p d300 2104m
metainit -s rac-data d347 -p d300 2104m
metainit -s rac-data d348 -p d300 2104m
metainit -s rac-data d349 -p d300 1004m
metainit -s rac-data d350 -p d300 4004m
metainit -s rac-data d351 -p d300 2204m
metainit -s rac-data d352 -p d300 2204m
metainit -s rac-data d353 -p d300 2204m
metainit -s rac-data d354 -p d300 1004m
metainit -s rac-data d355 -p d300 1004m
metainit -s rac-data d356 -p d300 2004m
metainit -s rac-data d357 -p d300 1004m
metainit -s rac-data d358 -p d300 2004m
metainit -s rac-data d359 -p d300 4004m
metainit -s rac-data d360 -p d300 2004m
metainit -s rac-data d361 -p d300 2004m
metainit -s rac-data d362 -p d300 2004m
metainit -s rac-data d363 -p d300 2004m
metainit -s rac-data d364 -p d300 2004m
metainit -s rac-data d365 -p d300 2204m
metainit -s rac-data d366 -p d300 2204m
metainit -s rac-data d367 -p d300 2204m
metainit -s rac-data d368 -p d300 2204m
metainit -s rac-data d369 -p d300 2004m
metainit -s rac-data d370 -p d300 2004m
metainit -s rac-data d371 -p d300 2004m
metainit -s rac-data d372 -p d300 1004m
metainit -s rac-data d373 -p d300 104m
metainit -s rac-data d374 -p d300 2004m
metainit -s rac-data d375 -p d300 2004m
metainit -s rac-data d376 -p d300 2004m
metainit -s rac-data d377 -p d300 2004m
metainit -s rac-data d378 -p d300 2213m
metainit -s rac-data d379 -p d300 2004m
metainit -s rac-data d380 -p d300 2004m
metainit -s rac-data d381 -p d300 2504m
metainit -s rac-data d382 -p d300 2504m
metainit -s rac-data d383 -p d300 2504m
metainit -s rac-data d384 -p d300 2004m
metainit -s rac-data d385 -p d300 2004m
metainit -s rac-data d386 -p d300 2004m
metainit -s rac-data d387 -p d300 2004m
metainit -s rac-data d388 -p d300 2004m
metainit -s rac-data d389 -p d300 1004m
metainit -s rac-data d390 -p d300 3004m
metainit -s rac-data d391 -p d300 1004m
metainit -s rac-data d392 -p d300 1004m
metainit -s rac-data d393 -p d300 2204m
metainit -s rac-data d394 -p d300 2204m
metainit -s rac-data d395 -p d300 2204m
metainit -s rac-data d396 -p d300 2204m
metainit -s rac-data d397 -p d300 2204m
metainit -s rac-data d398 -p d300 2204m
metainit -s rac-data d399 -p d300 2204m
metainit -s rac-data d400 -p d300 2204m
metainit -s rac-data d401 -p d300 2004m
metainit -s rac-data d402 -p d300 2004m
metainit -s rac-data d403 -p d300 2004m
metainit -s rac-data d404 -p d300 1028m
metainit -s rac-data d405 -p d300 3004m
metainit -s rac-data d406 -p d300 1004m
metainit -s rac-data d407 -p d300 1004m
metainit -s rac-data d408 -p d300 2504m
metainit -s rac-data d409 -p d300 2504m
metainit -s rac-data d410 -p d300 2504m
metainit -s rac-data d411 -p d300 2204m
metainit -s rac-data d412 -p d300 2204m
metainit -s rac-data d413 -p d300 2204m
metainit -s rac-data d414 -p d300 2204m
metainit -s rac-data d415 -p d300 2204m
metainit -s rac-data d416 -p d300 2204m
metainit -s rac-data d417 -p d300 2204m
metainit -s rac-data d418 -p d300 2204m
metainit -s rac-data d419 -p d300 1004m
metainit -s rac-data d420 -p d300 2204m
metainit -s rac-data d421 -p d300 2204m
metainit -s rac-data d422 -p d300 2204m
metainit -s rac-data d423 -p d300 2204m
metainit -s rac-data d424 -p d300 2204m
metainit -s rac-data d425 -p d300 2204m
metainit -s rac-data d426 -p d300 2204m
metainit -s rac-data d427 -p d300 2204m
metainit -s rac-data d428 -p d300 2204m
metainit -s rac-data d429 -p d300 2004m
metainit -s rac-data d430 -p d300 2004m
metainit -s rac-data d431 -p d300 2004m
metainit -s rac-data d432 -p d300 2004m
metainit -s rac-data d433 -p d300 2004m
metainit -s rac-data d434 -p d300 1028m
metainit -s rac-data d435 -p d300 1475m
metainit -s rac-data d436 -p d300 429m
metainit -s rac-data d437 -p d300 515m
metainit -s rac-data d438 -p d300 175m
metainit -s rac-data d439 -p d300 175m
metainit -s rac-data d440 -p d300 855m
metainit -s rac-data d441 -p d300 515m
metainit -s rac-data d442 -p d300 515m
metainit -s rac-data d443 -p d300 175m
metainit -s rac-data d444 -p d300 175m
metainit -s rac-data d445 -p d300 114m
metainit -s rac-data d446 -p d300 114m
metainit -s rac-data d447 -p d300 114m
metainit -s rac-data d448 -p d300 114m
metainit -s rac-data d449 -p d300 114m
metainit -s rac-data d450 -p d300 114m
metainit -s rac-data d451 -p d300 114m
metainit -s rac-data d452 -p d300 114m
metainit -s rac-data d453 -p d300 114m
metainit -s rac-data d454 -p d300 114m
metainit -s rac-data d455 -p d300 114m
metainit -s rac-data d456 -p d300 114m
metainit -s rac-data d457 -p d300 150m
metainit -s rac-data d458 -p d300 150m
metainit -s rac-data d459 -p d300 150m
metainit -s rac-data d460 -p d300 2004m

ln -s /dev/did/rac-data/rdsk/d301 ap_dat23
ln -s /dev/did/rac-data/rdsk/d302 cwmlite01
ln -s /dev/did/rac-data/rdsk/d303 drsys01
ln -s /dev/did/rac-data/rdsk/d304 example01
ln -s /dev/did/rac-data/rdsk/d305 indx01
ln -s /dev/did/rac-data/rdsk/d306 system01
ln -s /dev/did/rac-data/rdsk/d307 system02
ln -s /dev/did/rac-data/rdsk/d308 tools01
ln -s /dev/did/rac-data/rdsk/d309 undotbs01
ln -s /dev/did/rac-data/rdsk/d310 users01
ln -s /dev/did/rac-data/rdsk/d311 eai_dat01
ln -s /dev/did/rac-data/rdsk/d312 eai_dat02
ln -s /dev/did/rac-data/rdsk/d313 eip_dat01
ln -s /dev/did/rac-data/rdsk/d314 eis_dat01
ln -s /dev/did/rac-data/rdsk/d315 pms_idx01
ln -s /dev/did/rac-data/rdsk/d316 k_idx01
ln -s /dev/did/rac-data/rdsk/d317 k_idx02
ln -s /dev/did/rac-data/rdsk/d318 u_idx01
ln -s /dev/did/rac-data/rdsk/d319 so_dat01
ln -s /dev/did/rac-data/rdsk/d320 echmap_dat01
ln -s /dev/did/rac-data/rdsk/d321 s_idx01
ln -s /dev/did/rac-data/rdsk/d322 s_idx02
ln -s /dev/did/rac-data/rdsk/d323 ts_idx03
ln -s /dev/did/rac-data/rdsk/d324 tt_idx01
ln -s /dev/did/rac-data/rdsk/d325 ap_dat24
ln -s /dev/did/rac-data/rdsk/d326 ap_idx11
ln -s /dev/did/rac-data/rdsk/d327 ap_eai02_idx12
ln -s /dev/did/rac-data/rdsk/d328 bme_dat01
ln -s /dev/did/rac-data/rdsk/d329 eai_idx02
ln -s /dev/did/rac-data/rdsk/d330 eip_idx01
ln -s /dev/did/rac-data/rdsk/d331 eis_idx01
ln -s /dev/did/rac-data/rdsk/d332 hpms_dat01
ln -s /dev/did/rac-data/rdsk/d333 techmap_idx01
ln -s /dev/did/rac-data/rdsk/d334 ts_dat04
ln -s /dev/did/rac-data/rdsk/d335 ts_idx04
ln -s /dev/did/rac-data/rdsk/d336 eai_idx01
ln -s /dev/did/rac-data/rdsk/d337 frisk_dat01
ln -s /dev/did/rac-data/rdsk/d338 kk_dat01
ln -s /dev/did/rac-data/rdsk/d339 kk_dat02
ln -s /dev/did/rac-data/rdsk/d340 kk_dat03
ln -s /dev/did/rac-data/rdsk/d341 ku_dat01
ln -s /dev/did/rac-data/rdsk/d342 sso_idx01
ln -s /dev/did/rac-data/rdsk/d343 stat_dat01
ln -s /dev/did/rac-data/rdsk/d344 stat_idx01
ln -s /dev/did/rac-data/rdsk/d345 ts_dat01
ln -s /dev/did/rac-data/rdsk/d346 ts_dat02
ln -s /dev/did/rac-data/rdsk/d349 bme_idx01
ln -s /dev/did/rac-data/rdsk/d350 ap_dat01
ln -s /dev/did/rac-data/rdsk/d351 ap_dat02
ln -s /dev/did/rac-data/rdsk/d352 ap_dat03
ln -s /dev/did/rac-data/rdsk/d353 ap_dat04
ln -s /dev/did/rac-data/rdsk/d354 bb_idx01
ln -s /dev/did/rac-data/rdsk/d355 bd_idx01
ln -s /dev/did/rac-data/rdsk/d356 bm_idx01
ln -s /dev/did/rac-data/rdsk/d357 bp_idx01
ln -s /dev/did/rac-data/rdsk/d358 pa_dat01
ln -s /dev/did/rac-data/rdsk/d359 pf_dat01
ln -s /dev/did/rac-data/rdsk/d360 pf_dat02
ln -s /dev/did/rac-data/rdsk/d361 pg_dat01
ln -s /dev/did/rac-data/rdsk/d362 ph_dat01
ln -s /dev/did/rac-data/rdsk/d363 ph_dat02
ln -s /dev/did/rac-data/rdsk/d364 pp_dat01
ln -s /dev/did/rac-data/rdsk/d365 ap_idx01
ln -s /dev/did/rac-data/rdsk/d366 ap_idx02
ln -s /dev/did/rac-data/rdsk/d367 ap_idx03
ln -s /dev/did/rac-data/rdsk/d368 ap_idx04
ln -s /dev/did/rac-data/rdsk/d369 bb_dat01
ln -s /dev/did/rac-data/rdsk/d370 bd_dat01
ln -s /dev/did/rac-data/rdsk/d371 bm_dat01
ln -s /dev/did/rac-data/rdsk/d372 bp_dat01
ln -s /dev/did/rac-data/rdsk/d373 frisk_idx01
ln -s /dev/did/rac-data/rdsk/d374 pa_idx01
ln -s /dev/did/rac-data/rdsk/d375 pf_idx01
ln -s /dev/did/rac-data/rdsk/d376 pf_idx02
ln -s /dev/did/rac-data/rdsk/d377 pg_idx01
ln -s /dev/did/rac-data/rdsk/d378 ph_idx01
ln -s /dev/did/rac-data/rdsk/d379 ph_idx02
ln -s /dev/did/rac-data/rdsk/d380 pp_idx01
ln -s /dev/did/rac-data/rdsk/d381 ap_dat05
ln -s /dev/did/rac-data/rdsk/d382 ap_dat09
ln -s /dev/did/rac-data/rdsk/d383 ap_dat13
ln -s /dev/did/rac-data/rdsk/d384 bms_dat01
ln -s /dev/did/rac-data/rdsk/d385 eb_dat01
ln -s /dev/did/rac-data/rdsk/d386 eb_dat02
ln -s /dev/did/rac-data/rdsk/d387 eb_dat03
ln -s /dev/did/rac-data/rdsk/d388 eb_dat04
ln -s /dev/did/rac-data/rdsk/d389 hsms_dat01
ln -s /dev/did/rac-data/rdsk/d390 km_dat01
ln -s /dev/did/rac-data/rdsk/d391 pw_dat01
ln -s /dev/did/rac-data/rdsk/d392 pwb_dat01
ln -s /dev/did/rac-data/rdsk/d393 ap_dat06
ln -s /dev/did/rac-data/rdsk/d394 ap_dat10
ln -s /dev/did/rac-data/rdsk/d395 ap_dat14
ln -s /dev/did/rac-data/rdsk/d396 ap_dat17
ln -s /dev/did/rac-data/rdsk/d397 ap_dat20
ln -s /dev/did/rac-data/rdsk/d398 ap_dat21
ln -s /dev/did/rac-data/rdsk/d399 ap_idx05
ln -s /dev/did/rac-data/rdsk/d400 ap_idx06
ln -s /dev/did/rac-data/rdsk/d401 bms_idx01
ln -s /dev/did/rac-data/rdsk/d402 eb_idx01
ln -s /dev/did/rac-data/rdsk/d403 eb_idx02
ln -s /dev/did/rac-data/rdsk/d404 hsms_idx01
ln -s /dev/did/rac-data/rdsk/d405 km_idx01
ln -s /dev/did/rac-data/rdsk/d406 pw_idx01
ln -s /dev/did/rac-data/rdsk/d407 pwb_idx01
ln -s /dev/did/rac-data/rdsk/d408 ap_dat07
ln -s /dev/did/rac-data/rdsk/d409 ap_dat11
ln -s /dev/did/rac-data/rdsk/d410 ap_dat15
ln -s /dev/did/rac-data/rdsk/d411 ap_dat18
ln -s /dev/did/rac-data/rdsk/d412 ap_dat25
ln -s /dev/did/rac-data/rdsk/d413 ap_eai08_idx12
ln -s /dev/did/rac-data/rdsk/d414 dat02
ln -s /dev/did/rac-data/rdsk/d415 pf_dat03
ln -s /dev/did/rac-data/rdsk/d416 pf_dat04
ln -s /dev/did/rac-data/rdsk/d417 ph_dat03
ln -s /dev/did/rac-data/rdsk/d418 ph_dat04
ln -s /dev/did/rac-data/rdsk/d419 pi_dat01
ln -s /dev/did/rac-data/rdsk/d420 ap_dat08
ln -s /dev/did/rac-data/rdsk/d421 ap_dat12
ln -s /dev/did/rac-data/rdsk/d422 ap_dat16
ln -s /dev/did/rac-data/rdsk/d423 ap_dat19
ln -s /dev/did/rac-data/rdsk/d424 ap_dat22
ln -s /dev/did/rac-data/rdsk/d425 ap_idx07
ln -s /dev/did/rac-data/rdsk/d426 ap_idx08
ln -s /dev/did/rac-data/rdsk/d427 ap_idx09
ln -s /dev/did/rac-data/rdsk/d428 ap_idx10
ln -s /dev/did/rac-data/rdsk/d429 bm_idx02
ln -s /dev/did/rac-data/rdsk/d430 pf_idx03
ln -s /dev/did/rac-data/rdsk/d431 pf_idx04
ln -s /dev/did/rac-data/rdsk/d432 ph_idx03
ln -s /dev/did/rac-data/rdsk/d433 ph_idx04
ln -s /dev/did/rac-data/rdsk/d434 pi_idx01
ln -s /dev/did/rac-data/rdsk/d435 temp01
ln -s /dev/did/rac-data/rdsk/d436 temp_usr
ln -s /dev/did/rac-data/rdsk/d437 temp_eai
ln -s /dev/did/rac-data/rdsk/d438 temp_ap
ln -s /dev/did/rac-data/rdsk/d439 temp_techmap
ln -s /dev/did/rac-data/rdsk/d440 temp_tmp
ln -s /dev/did/rac-data/rdsk/d441 temp_eai02
ln -s /dev/did/rac-data/rdsk/d442 temp_eai03
ln -s /dev/did/rac-data/rdsk/d443 temp_eai2_01
ln -s /dev/did/rac-data/rdsk/d444 srv_cfg
ln -s /dev/did/rac-data/rdsk/d445 redo1_1
ln -s /dev/did/rac-data/rdsk/d446 redo1_2
ln -s /dev/did/rac-data/rdsk/d447 redo1_3
ln -s /dev/did/rac-data/rdsk/d448 redo1_1b
ln -s /dev/did/rac-data/rdsk/d449 redo1_2b
ln -s /dev/did/rac-data/rdsk/d450 redo1_3b
ln -s /dev/did/rac-data/rdsk/d451 redo2_1
ln -s /dev/did/rac-data/rdsk/d452 redo2_2
ln -s /dev/did/rac-data/rdsk/d453 redo2_3
ln -s /dev/did/rac-data/rdsk/d454 redo2_1b
ln -s /dev/did/rac-data/rdsk/d455 redo2_2b
ln -s /dev/did/rac-data/rdsk/d456 redo2_3b
ln -s /dev/did/rac-data/rdsk/d457 contr011
ln -s /dev/did/rac-data/rdsk/d458 contr012
ln -s /dev/did/rac-data/rdsk/d459 contr013
ln -s /dev/did/rac-data/rdsk/d460 undotbs02

++++++++++++ RAC METASET ++++++++++++++++++++++++++++++++
 scrgadm -a -g e20k-b-rg
 scrgadm -a -L -g e20k-b-rg -j e20k-b-lh-rs -l e20k-b-lh

scrgadm -a -g e20k-b-rg -j lms-data-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/LMS_DATA,/LMS_ARCH -x AffinityOn=True
scrgadm -a -g e20k-b-rg -j mnct-data-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/MNCT_DATA,/MNCT_DATA -x AffinityOn=True
scrgadm -a -g e20k-b-rg -j crm-data-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/CRM_DATA,/CRM_ARCH -x AffinityOn=True

 lms-data
/dev/did/rdsk/d18
/dev/did/rdsk/d19
/dev/did/rdsk/d20

metaset -s lms-data -a -h e20k-b e25k-b
metaset -s lms-data -a /dev/did/rdsk/d18 /dev/did/rdsk/d19 /dev/did/rdsk/d20
metainit -s lms-data d200 3 1 /dev/did/rdsk/d18s0 1 /dev/did/rdsk/d19s0  1 /dev/did/rdsk/d20s0
metainit -s lms-data d201 -p d200 50g
metainit -s lms-data d202 -p d200 50g

 mnct-data
/dev/did/rdsk/d21
/dev/did/rdsk/d22
/dev/did/rdsk/d23

metaset -s mnct-data -a -h e20k-b e25k-b
metaset -s mnct-data -a /dev/did/rdsk/d21 /dev/did/rdsk/d22 /dev/did/rdsk/d23
metainit -s mnct-data d200 3 1 /dev/did/rdsk/d21s0 1 /dev/did/rdsk/d22s0 1 /dev/did/rdsk/d23s0
metainit -s mnct-data d201 -p d200 50g
metainit -s mnct-data d202 -p d200 50g
newfs /dev/md/mnct-data/rdsk/d201 y
newfs /dev/md/mnct-data/rdsk/d202 y

 crm-data
/dev/did/rdsk/d24
/dev/did/rdsk/d25
/dev/did/rdsk/d26

metaset -s crm-data -a -h e20k-b e25k-b
metaset -s crm-data -a /dev/did/rdsk/d24 /dev/did/rdsk/d25 /dev/did/rdsk/d26
metainit -s crm-data d200 3 1 /dev/did/rdsk/d24s0 1 /dev/did/rdsk/d25s0 1 /dev/did/rdsk/d26s0
metainit -s crm-data d201 -p d200 50g
metainit -s crm-data d202 -p d200 50g
newfs /dev/md/crm-data/rdsk/d201
newfs /dev/md/crm-data/rdsk/d202
++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++ e25k-b +++++++++++++++++++++++++
e25k-b

 scrgadm -a -g e25k-b-rg

 scrgadm -a -L  -g e25k-b-rg -j e25k-b-lh-rs -l e25k-b-lh

scrgadm -a -g e25k-b-rg -j khcg-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/KHCG_DATA -x AffinityOn=True
scrgadm -a -g e25k-b-rg -j www-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/WWW_DATA -x AffinityOn=True
scrgadm -a -g e25k-b-rg -j ebid-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/EBID_DATA -x AffinityOn=True
scrgadm -a -g e25k-b-rg -j rfid-rs -t SUNW.HAStoragePlus -x FileSystemMountPoints=/RFID_DATA,/RFID_ARCH -x AffinityOn=True

 khcg-data
/dev/did/rdsk/d27
/dev/did/rdsk/d28
/dev/did/rdsk/d29
/dev/did/rdsk/d30

 metastat -s khcg-data -p

metaset -s khcg-data -a -h e25k-b e20k-b
metaset -s khcg-data -a /dev/did/rdsk/d27 /dev/did/rdsk/d28 /dev/did/rdsk/d29 /dev/did/rdsk/d30
metainit -s khcg-data d100 1 4 /dev/did/rdsk/d27s0 /dev/did/rdsk/d28s0 /dev/did/rdsk/d29s0 /dev/did/rdsk/d30s0 -i 32b
metainit -s khcg-data d101 -p d100 -o 1 -b 81924096
metainit -s khcg-data d102 -p d100 -o 81924098 -b 208896
metainit -s khcg-data d103 -p d100 -o 82132995 -b 8196096
metainit -s khcg-data d104 -p d100 -o 90329092 -b 8196096
metainit -s khcg-data d105 -p d100 -o 98525189 -b 8196096
metainit -s khcg-data d106 -p d100 -o 106721286 -b 8196096
metainit -s khcg-data d107 -p d100 -o 114917383 -b 8196096
metainit -s khcg-data d108 -p d100 -o 123113480 -b 8196096
metainit -s khcg-data d109 -p d100 -o 131309577 -b 8196096
metainit -s khcg-data d110 -p d100 -o 139505674 -b 8196096
metainit -s khcg-data d111 -p d100 -o 147701771 -b 8196096
metainit -s khcg-data d112 -p d100 -o 155897868 -b 8196096
metainit -s khcg-data d113 -p d100 -o 164093965 -b 8196096
metainit -s khcg-data d114 -p d100 -o 172290062 -b 8196096
metainit -s khcg-data d115 -p d100 -o 180486159 -b 8196096
metainit -s khcg-data d116 -p d100 -o 188682256 -b 8196096
metainit -s khcg-data d117 -p d100 -o 196878353 -b 8196096
metainit -s khcg-data d118 -p d100 -o 205074450 -b 8196096
metainit -s khcg-data d119 -p d100 -o 213270547 -b 8196096
metainit -s khcg-data d120 -p d100 -o 221466644 -b 8196096
metainit -s khcg-data d121 -p d100 -o 229662741 -b 8196096
metainit -s khcg-data d122 -p d100 -o 237858838 -b 2052096
metainit -s khcg-data d123 -p d100 -o 239910935 -b 208896
metainit -s khcg-data d124 -p d100 -o 240119832 -b 2052096
metainit -s khcg-data d125 -p d100 -o 242171929 -b 208896
metainit -s khcg-data d126 -p d100 -o 242380826 -b 8196096
metainit -s khcg-data d129 -p d100 -o 254681117 -b 8196096
metainit -s khcg-data d130 -p d100 -o 262877214 -b 208896
metainit -s khcg-data d131 -p d100 -o 263086111 -b 208896
metainit -s khcg-data d132 -p d100 -o 263295008 -b 208896
metainit -s khcg-data d133 -p d100 -o 263503905 -b 208896
metainit -s khcg-data d134 -p d100 -o 263712802 -b 208896
metainit -s khcg-data d135 -p d100 -o 263921699 -b 208896
metainit -s khcg-data d136 -p d100 -o 264130596 -b 208896
metainit -s khcg-data d137 -p d100 -o 264339493 -b 208896
metainit -s khcg-data d138 -p d100 -o 264548390 -b 208896
metainit -s khcg-data d138 -p khcg-data d100 -o 264548390 -b 208896


 ebid-data
/dev/did/rdsk/d31
/dev/did/rdsk/d32
/dev/did/rdsk/d33

ebid-data
metaset -s ebid-data -a -h e25k-b e20k-b
metaset -s ebid-data -a /dev/did/rdsk/d31 /dev/did/rdsk/d32 /dev/did/rdsk/d33
metainit -s ebid-data d300 1 3 /dev/did/rdsk/d31s0 /dev/did/rdsk/d32s0 /dev/did/rdsk/d33s0 -i 32b
metainit -s ebid-data d301 -p d300 -o 1 -b 208896
metainit -s ebid-data d302 -p d300 -o 208898 -b 8196096
metainit -s ebid-data d303 -p d300 -o 8404995 -b 8196096
metainit -s ebid-data d304 -p d300 -o 16601092 -b 8196096
metainit -s ebid-data d305 -p d300 -o 24797189 -b 8196096
metainit -s ebid-data d306 -p d300 -o 32993286 -b 2052096
metainit -s ebid-data d307 -p d300 -o 35045383 -b 208896
metainit -s ebid-data d308 -p d300 -o 35254280 -b 2052096
metainit -s ebid-data d309 -p d300 -o 37306377 -b 208896
metainit -s ebid-data d310 -p d300 -o 37515274 -b 2052096
metainit -s ebid-data d311 -p d300 -o 39567371 -b 208896
metainit -s ebid-data d312 -p d300 -o 39776268 -b 208896
metainit -s ebid-data d313 -p d300 -o 39985165 -b 208896
metainit -s ebid-data d314 -p d300 -o 40194062 -b 208896
metainit -s ebid-data d315 -p d300 -o 40402959 -b 208896
metainit -s ebid-data d316 -p d300 -o 40611856 -b 208896
metainit -s ebid-data d317 -p d300 -o 40820753 -b 208896
metainit -s ebid-data d318 -p d300 -o 41029650 -b 208896
metainit -s ebid-data d319 -p d300 -o 41238547 -b 208896
metainit -s ebid-data d320 -p d300 -o 41447444 -b 81924096
metainit -s ebid-data d321 -p d300 -o 123371541 -b 8196096
metainit -s ebid-data d322 -p d300 -o 131567638 -b 8196096


 www-data
/dev/did/rdsk/d34
/dev/did/rdsk/d35

metaset -s www-data -a -h e25k-b e20k-b
metaset -s www-data -a /dev/did/rdsk/d34 /dev/did/rdsk/d35
metainit -s www-data d200 1 2 /dev/did/rdsk/d34s0 /dev/did/rdsk/d35s0 -i 32b
metainit -s www-data d201 -p d200 -o 1 -b 8196096
metainit -s www-data d202 -p d200 -o 8196098 -b 2052096
metainit -s www-data d203 -p d200 -o 10248195 -b 208896
metainit -s www-data d204 -p d200 -o 10457092 -b 2052096
metainit -s www-data d205 -p d200 -o 12509189 -b 208896
metainit -s www-data d206 -p d200 -o 12718086 -b 2052096
metainit -s www-data d207 -p d200 -o 14770183 -b 208896
metainit -s www-data d208 -p d200 -o 14979080 -b 4100096
metainit -s www-data d209 -p d200 -o 19079177 -b 208896
metainit -s www-data d210 -p d200 -o 19288074 -b 208896
metainit -s www-data d211 -p d200 -o 19496971 -b 208896
metainit -s www-data d212 -p d200 -o 19705868 -b 208896
metainit -s www-data d213 -p d200 -o 19914765 -b 208896
metainit -s www-data d214 -p d200 -o 20123662 -b 208896
metainit -s www-data d215 -p d200 -o 20332559 -b 208896
metainit -s www-data d216 -p d200 -o 20541456 -b 208896
metainit -s www-data d217 -p d200 -o 20750353 -b 208896
metainit -s www-data d218 -p d200 -o 20959250 -b 81924096


 rfid-data
/dev/did/rdsk/d36
/dev/did/rdsk/d37

metaset -s rfid-data -a -h e25k-b e20k-b
metaset -s rfid-data -a /dev/did/rdsk/d36 /dev/did/rdsk/d37
metainit -s rfid-data d100 2 1 /dev/did/rdsk/d36s0 1 /dev/did/rdsk/d37s0
metainit -s rfid-data d101 -p d100 40g
metainit -s rfid-data d102 -p d100 29g

++++++++++++++++++++++++++
/dev/did/rdsk/d38
/dev/did/rdsk/d39
/dev/did/rdsk/d40
/dev/did/rdsk/d41
/dev/did/rdsk/d42
/dev/did/rdsk/d43
/dev/did/rdsk/d44
/dev/did/rdsk/d45
/dev/did/rdsk/d46
/dev/did/rdsk/d47
/dev/did/rdsk/d48

 

목요일 10월 18, 2007

 

http://bigadmin.eng.sun.com/bigadmin/collections/migration.html

From Section: Articles and FAQs

1.  Click here for more information Best Practices for Migrating to the Solaris 9 Operating System 2005-11-19
2.  Click here for more information Centralized LDAP Authentication HowTo * 2005-04-15
3.  Click here for more information Consolidating Legacy Applications onto Sun x64 Servers (pdf) 2006-02-22
4.  Click here for more information Consolidating the Sun Store onto Sun Fire T2000 Servers (pdf) 2006-01-05
5.  Click here for more information Consolidation Tool for Sun Fire Servers V1.0 2006-03-22
 
6.  Click here for more information CoolThreads Selection Tool 2006-05-01
7.  Click here for more information External Disk Frame Migration on the Solaris 9 OS 2007-10-12 - New/Updated
8.  Click here for more information How to Quickly Install the Solaris 10 8/07 OS on x86 Systems 2007-09-11
9.  Click here for more information HP-UX to Solaris Migration 2005-10-28
10.  Click here for more information IBM WebSphere Application Server on Solaris 10 and Zones (pdf) 2006-05-30
11.  Click here for more information Linux to Solaris 10 Migration Guide (pdf) 2007-10-02 - New/Updated
 
12.  Click here for more information Live Upgrade Notes * 2005-10-06
13.  Click here for more information Migrating From Eclipse 3.0 to Sun Java Studio Enterprise 7 (pdf) 2005-03-24
14.  Click here for more information Migrating From Tru64 UNIX to the Solaris Operating System (pdf) 2005-03-24
15.  Click here for more information Migrating Solaris to a Storage Area Network * 2005-03-22
16.  Click here for more information Migrating Web Applications From Apache Tomcat 5.x to Sun Java System Web Server 7.0 2006-06-20
17.  Click here for more information Moving to Bash as Your Shell * 2006-03-01
 
18.  Click here for more information Moving Windows NT Applications to Sun Fire x64 Servers (Registration Required) 2007-09-06
19.  Click here for more information Replacing Sendmail with Postfix * 2006-03-01
20.  Click here for more information SAN Booting as a means for server migration and remote site recovery (pdf) * 2006-09-12
21.  Click here for more information Sizing Sun Ray Servers Running Windows Apps with SunPCi IIpro Coprocessor Cards (PDF) 2005-03-22
22.  Click here for more information Solaris 2 FAQ * 2005-03-22
23.  Click here for more information Solaris 2 FAQ * 2005-03-22
 
24.  Click here for more information Solaris 2 Migration FAQ 2005-03-22
25.  Click here for more information Solaris 2 Porting FAQ 2005-03-22
26.  Click here for more information Solaris Containers - Virtualization Techniques (pdf) 2006-05-23
27.  Click here for more information Solaris FAQ by Casper Dik * 2005-07-28
28.  Click here for more information Solaris ZFS and Microsoft Server 2003 NTFS File System Performance 2007-06-26
29.  Click here for more information Sun's Infrastructure Solution for Tru64 Migration (PDF) 2005-10-29
 
30.  Click here for more information The Route from Solaris 10 Zones to Server Consolidation * 2006-03-10
31.  Click here for more information Understanding the NIS to LDAP Service (N2L) Architecture (pdf) 2006-04-19
32.  Click here for more information Using Patch Smack With Patch Manager 2.0 and the Solaris 9 OS 2007-09-11
33.  Click here for more information WebStart Flash (PDF) 2005-03-22
 

From Section: Blogs

34.  Click here for more information Eleven Myths About Solaris x86/x64 Platforms (blog) 2007-10-11 - New/Updated
35.  Click here for more information The BigAdmin Blog 2007-09-25 - New/Updated
 

From Section: Docs

36.  Click here for more information Solaris Live Upgrade and Upgrade Planning 2006-02-21
37.  Click here for more information Sun BluePrints 2005-03-22
38.  Click here for more information Sun Configuration Diagram Templates 2007-08-23
39.  Click here for more information Trusted Solaris 8 Network Separation 2005-03-22
40.  Click here for more information Trying Solaris for x86 * 2005-03-22
 

From Section: Education

41.  Click here for more information Solaris and Microsoft Windows Network Integration 2005-02-24
42.  Click here for more information Solaris Operating System Administration for Experienced HP-UX and Tru64 Administrators 2005-10-28
43.  Click here for more information Sun Certified System Administrator (SCSA) 2005-02-24
 

From Section: Features

44.  Click here for more information ISV Adoption Strategy for the Solaris 10 Operating System 2005-03-28
45.  Click here for more information Migration From Platform Computing's Load Sharing Facility to Sun N1 Grid Engine Software 2005-06-14
46.  Click here for more information Ready for the Real World: Sun Java Desktop System 2005-06-08
47.  Click here for more information Resources for Running Solaris OS on a Laptop 2006-04-12
48.  Click here for more information Solaris 9 SysAdmin Evaluation Guide 2005-03-22
 
49.  Click here for more information Solaris Releases, releases everywhere... 2005-03-22
50.  Click here for more information Switching Databases From MySQL to PostgreSQL 8.2 2007-10-09 - New/Updated
 

From Section: HCL

51.  Click here for more information Solaris for x86 Device List 2007-09-25 - New/Updated
 

From Section: Hubs

52.  Click here for more information Sun Java Communications Suite Hub 2007-10-16 - New/Updated
 

From Section: Resources

53.  Click here for more information A Sysadmin's Rosetta Stone * 2005-03-22
54.  Click here for more information BigAdmin Newsletter Archive 2007-07-31
55.  Click here for more information BigAdmin Products and Technologies: Solaris 10 2007-08-24
56.  Click here for more information Data Center Calculator * 2007-05-30
57.  Click here for more information Solaris 10 OS Adoption Kit Tools 2007-10-02 - New/Updated
 
58.  Click here for more information Solaris Advanced System Administrator's Guide, 2nd Ed. * 2005-03-22
59.  Click here for more information Solaris and LDAP Naming Services: Deploying LDAP in the Enterprise 2005-03-22
60.  Click here for more information Solaris for Java Geeks (Wiki) * 2006-07-31
61.  Click here for more information Solaris Internals, Second Edition: Solaris 10 and OpenSolaris Kernel Architecture 2006-08-15
62.  Click here for more information Solaris Performance and Tools: DTrace and MDB Techniques for Solaris 10 and OpenSolaris 2006-08-15
63.  Click here for more information Sun and Microsoft Interoperate for Web Authentication, Part 2 2007-09-06
 
64.  Click here for more information The Scripts Dot Com * 2007-03-21
65.  Click here for more information Tru_to_Solaris Migration Tool for C/C++ Source Code 2005-03-30
66.  Click here for more information ZFS Best Practices Guide * 2007-05-03
 

From Section: Scripts

67.  Click here for more information Conditional function definitions in ksh 2007-09-27 - New/Updated
68.  Click here for more information DVD Recovery - Large root disk recovery from DVD 2005-06-27
69.  Click here for more information Solaris WANboot setup script 2006-05-04
 

From Section: Services

70.  Click here for more information Sun Grid Engine Qmaster Update and Migration 2007-07-24
 

From Section: Software

71.  Click here for more information Solaris 8 Admin Pack 2005-10-27
 

From Section: Tech Tips

72.  Click here for more information Reading an SGI Tape on the Solaris OS 2006-12-04
73.  Click here for more information Two Platform Groups, One Installation of the Solaris OS 2007-04-17
 

From Section: Topics

74.  Click here for more information DST: Daylight Savings Time Changes (2007) Hub 2007-08-23
75.  Click here for more information

토요일 8월 25, 2007

A3x00
Command Line Procedures
INDEX
2 Setting Path
2 Checking the whole Array
3 Checking the Controllers
4 Checking the Disks
5 Checking the Logical Devices
7 Recovering Disk Problems
7 Recovering Controller Problems
8 Recovering Logical Devices
9 Upgrading Firmware
Appendices:
A Decoding rmlog.log

2 A3500 Trouble Shooting from the Command Line
Setting up the path
# ksh
# PATH=$PATH:/usr/lib/osa/bin
# export PATH
This will need to be run every time you log in, unless it is added to the /.profile file.
Looking for errors
- Check /var/adm/messages
- LUNs offline
- SCSI errors
- Check rmlog.log
- # logutil /usr/lib/osa/rmlog.log
- See Attachment A for notes on how to decode the log
- See /etc/raid/raidcode.txt for more on decoding
- Look for patterns of errors in the logs
Here is some examples of useful commands, and some outputs that you might expect to see:-
# healthck -a
**********************************************************************************
Health Check Summary Information
p4u-5500a_002: Multiple Unresponsive Drives at Drive [2,2];[2,3];[2,5];[2,8];[2,9];[2,12];[2,13]
healthck succeeded!
**********************************************************************************
3
To Check Controllers
# rdacutil -i p4u-5500a_002
************************************************************************************
p4u-5500a_002: dual-active
Active controller a (c1t5d0s0) units: 0 2
Active controller b (c2t4d1s0) units: 1
rdacutil succeeded!
************************************************************************************
# lad
************************************************************************************
c1t5d0s0 1T81410687 LUNS: 0 2
c2t4d1s0 1T82623877 LUNS: 1
************************************************************************************
# storutil -c c1t5d0s0 -d
************************************************************************************
p4u-5500a_002:
Controller A: 1T81410687 ( c1t5d0s0 )
Controller B: 1T82623877 ( c2t4d1s0 )
Independent Controller Configuration: OFF
************************************************************************************
4
To Check Disks
# drivutil -i c1t5d0s0
************************************************************************************
Drive Information for p4u-5500a_002
Location Capacity Status Vendor Product Firmware Serial
(MB) ID Version Number
[1,0] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G074
[2,0] 4094 Optimal SEAGATE ST34501WCSUN4.2G 0558 LG433750
[3,0] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G072
[4,0] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G086
[5,0] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G053
[1,1] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G083
[2,1] 4094 Optimal SEAGATE ST34501WCSUN4.2G 0558 LG461369
[3,1] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G075
[4,1] 17274 Optimal FUJITSU MAA3182S SUN18G 1907 00H22912
[5,1] 17274 Optimal FUJITSU MAA3182S SUN18G 1907 00H22718
[1,2] 17274 Optimal FUJITSU MAA3182S SUN18G 1907 00H24391
[2,2] 0 Unresponsive
[3,2] 17274 Optimal FUJITSU MAA3182S SUN18G 1907 00H24741
[2,3] 0 Unresponsive
[2,4] 4094 Optimal SEAGATE ST34501WCSUN4.2G 0558 LG461444
[2,5] 0 Unresponsive
[2,8] 0 Unresponsive
[4,8] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G083
[5,8] 17274 Optimal FUJITSU MAA3182S SUN18G 1705 00G082
[2,9] 0 Unresponsive
[2,10] 4094 Optimal SEAGATE ST34501WCSUN4.2G 0558 LG432787
[2,11] 4094 Optimal SEAGATE ST34501WCSUN4.2G 0558 LG461468
[2,12] 0 Unresponsive
[2,13] 0 Unresponsive
drivutil succeeded!
************************************************************************************
5
To Check the Logical Devices (LUNs and Drive Groups)
# drivutil -d c1t5d0s0
************************************************************************************
Drives in Group for p4u-5500a_002
Group Drive List [Channel,Id]
Unassigned [3,2]; [4,8]; [5,8];
Group 1: [1,0]; [3,0]; [4,0]; [5,0];
Group 2: [2,0]; [2,1]; [2,2]; [2,3]; [2,4]; [2,5]; [2,8]; [2,9]; [2,10]; [2,11]; [2,12]; [2,13];
Group 3: [1,1]; [3,1]; [4,1]; [5,1]; [1,2];
drivutil succeeded!
************************************************************************************
# drivutil -I p4u-5500a_002
************************************************************************************
Group Information for p4u-5500a_002
Group No. of RAID No. of Total Remaining
LUNs Level Drives Space(MB) Space(MB)
Unassigned 0 - 3 51704 51704
1 1 0 4 68938 68937
2 1 1 12 24325 0
3 1 5 5 68938 0
drivutil succeeded!
************************************************************************************
6
# drivutil -p 0 c1t5d0s0
************************************************************************************
p4u-5500a_002 unit 0: optimal
drivutil succeeded!
************************************************************************************
# drivutil -l p4u-5500a_002
***********************************************************************************
Logical Unit Information for p4u-5500a_002
LUN Group Device RAID Capacity Status
Name Level (MB)
0 1 c1t5d0s0 0 1 Optimal
1 2 c2t4d1s0 1 24325 Optimal
2 3 c1t5d2s0 5 68938 Optimal
drivutil succeeded!
************************************************************************************
7 Recovery
Disks
To try and ’unfail’ a disk in the state Replaced
Failed
Unresponsive, do
# drivutil -u <drive number> <controller id>
Where <drive number> is the tray number, followed by the disk number, with no separator, and the
<controller id> is the name of the array, or the ID of the specific controller
e.g. # drivutil -u 210 c2t4d0s0
(This will ’unfail’ disk 10 on tray 2, on the controller c2t4d0s0)
If this does not work, try and manually fail the drive, and then try and ’unfail’ it again afterwards. To
fail the drive, do:
# drivutil -f <drive number> <controller id>
e.g. # drivutil -f 210 c2t4d0s0
Controllers
To ’unfail’ a controller. Normally this would succeed if the controller was held in reset (all lights on
the controller on).
# rdacutil -u <raid module specifier> or
# rdacutil -U <raid module specifier>
e.g. # rdacutil -u p4u-5500a_002
This will bring the controller back online, and should move the LUNs so that they are balanced in the
same way as before the failure. If you use the lower case ’u’ as the argument then normal checks will
be made before the controller is put back on line, and if you use the the uppercase ’U’ then the controller
will come back on line without any checks being made.
8
If required you can manually fail one of the controllers. This will automatically move the LUNs on the
controller that we are trying to fail on to the controller that will remain ’optimal’.
# rdacutil -f <id of the controller you want to fail>
# rdacutil -F <id of alternate controller to the one you want to fail>
Logical Devices
To revive a LUN from a dead state:
# drivutil -r <LUN number> <raid module specifier>
e.g. # drivutil -r 2 p4u-5500a_002
You must now run fsck on the file systems on the LUN, and then mount it, and check the data. The sanity
of this data is not guaranteed. (In fact it may be complete insane!)
9
Upgrading Firmware
To check the current version of the firmware that is installed:
# raidutil -i <controller id>
e.g. # raidutil -i c1t4d0s0
***********************************************************************************
LUNs found on c1t4d0s0
LUN 0 RAID 0 1 MB
LUN 2 RAID 5 68938 MB
Vendor ID Symbios
ProductID StorEDGE A3000
Product Revision 0205
Boot Level 02.05.01.00
Boot Level Date 12/02/97
Firmware Level 02.05.02.15
Firmware Date 09/08/98
raidutil succeeded
***********************************************************************************
To quisce the one of the controllers, so that it can be upgraded.
If the controllers are currently active/active, then run the following command
# raidutil -m 1 <raid module specifier>
e.g. # raidutil -m 1 p4u-5500a_002
This will make controller A active, and controller B passive. You can now upgrade controller B.
Run the command again, and the currently active controller will become passive, and vice versa. This
will allow you to upgrade controller A
10
Then run the following command to put the controllers back into an active/active state.
# rdacutil -m 2 -b <raid module specifier>
e.g. # rdacutil -m 2 -b c1t4d0s0
(The -b will rebalance the LUNs to a ’nominal’ configuration)
To actually do the upgrade, you will need to load the relevant patch (currently 106513), which will put
the firmware files in the usr/lib/osa/fw/ directory.
The files will be proceeded with the firmware level, and end with a suffix, such as .apd or .fcd.
e.g. /usr/lib/osa/fw/02050211.apd
All the files with the relevant firmware number prefix should be installed.
To install the firmware run the command:
# fwutil <file> <raid controller specifier>
e.g. fwutil /usr/lib/osa/fw/02050211.apd p4u-5500a_002
After the upgrades, check the firmware levels, with the command:
# raidutil -i <controller id>
e.g. # raidutil -i c1t4d0s0
Attachment A
Decoding rmlog.log
First run the command:
# logutil /usr/lib/osa/rmlog.log
Record # 409:
Host: bart
Date: 09/28/97
Time: 16:22:18
Device: c2t5d6s0
Controller: 1T1234567JT
Error Type: 06
LUN: 03
LUN Status: 01
Drive: 2E
Error Number: 3F80
Sense Data:
7000 0600 0000 0098 0000 0000 3F80 2E00
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0008 0500 0000 0000 0000 0000
0000 0000 0F05 3154 3731 3332 3230 3736
2020 2020 2020 0204 1D00 0003 0100 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0050 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 000
The first line tells you the event number, followed by the
name of the host. Next is the date, time of the event. The drive
invloved, the controller serial number of the A3000 controller invloved.
Next would be the type of error, the LUN number, the location of the
actual drive, the error number and then the sense data.
LUN Status Definition:
00 => Optimal condition
20 => Optimal with parity scan in progress
01 => Degraded LUN- waiting for repair action
41 => Degraded LUN - replaced drive being formatted.
02 => Degraded LUN - replaced drive being reconstructed
04 => Dead LUN
44 => Dead LUN - format in progress
54 => Dead LUN - creation in progress
74 => Dead LUN - wrong drive removed/replaced
Error Number Definition:
This information is in the raidcode.txt on the sonoma page or
in RM6 6.1
Error Type:
This will always be byte 2 in the sense data, they are defined as
follows:
00 => No Sense
01 => Recovered Error
02 => Not Ready
03 => Medium Error
04 => Hardware Error
05 => Illegal Request
06 => Unit Attention
07 => Data Protect
0B => Aborted Command
0E => Miscompare
In the example above, you can see that it is telling you that the error
has to do with "Unit Attention:.
Drive Location:
The 362x controller reports drive location start with byte offset 0, and
going from bottom to top, it would be 0,1,2,3 and 4. This would correspond
with drive channels 1,2,3,4 and 5 that RM6 uses. The drives are targeted
from 8 thru E in the firmware. In our example above of drive location
2E, that would be the third tray from the bottom and the last drive in the
tray. RM6 would see this drive 3,14.
Sense Data Decoding:
Byte 2 is the sense key inforamtion
byte 7 is Additional Sense Length, this value will indicate the number
of additional sense bytes to follow.
Bytes 8-11 will always be zero unless the has been unsuccessful Reassign
blocks.
Bytes 12-13, this information is in the raidcode.txt file or on the sonoma
web page.
Byte 14, Field Replaceable Unit Code, this is also in the raidcode.txt file.
Bytes 37-40, Error Detection Point, will indicate were in the software
the error was detected.
Bytes 52-53, Host Descriptor:
LSB:
bit 0 => data is being transfered 16-bit wide
bit 1 => Reserved
bit 2 => wide negotiation completed successfully
bit 3-7 => Reserved
MSB:
0 => Message using host
1 => Reselectable host
2 => data is being transferred synchronously(bit off means
asynchronously data transfer)
3 => synchronous negotiation successful
4 => Reserved
5 => AEN supported
6 => Polled AEN supported
7 => Reserved
Bytes 54-69, Controller serial number
Bytes 70-73, Array software Revision
Byte 75, LUN Number
Byte 76, LUN status
Byte 101, Raid Level, a value off 255 indicates that the LUN Raid
level is undefined
To break down on sense data a little:
byte 2 7 1213 14
7000 0600 0000 0098 0000 0000 3F80 2E00 sense data
0000 0000 0000 0000 0000 0000 0000 0000 sense data
byte 37 38
0000 0000 0008 0500 0000 0000 0000 0000 sense data
byte 5253 5455 5657 5859 6061 6263
0000 0000 0F05 3154 3731 3332 3230 3736 sense data
byte6465 6667 6869 7071 7273 75 76
2020 2020 2020 0204 1D00 0003 0100 0000 sense data
0000 0000 0000 0000 0000 0000 0000 0000 sense data
byte 101
0000 0000 0050 0000 0000 0000 0000 0000 sense data
0000 0000 0000 0000 0000 0000 0000 000 sense data

금요일 8월 10, 2007

  Oracle 10g RAC on Solaris 10 With SVM Install


1. Mirror on boot disk: (All nodes)

      # metainit -f

            d100 1 1 c0t0d0s0
            d101 1 1 c0t0d0s1
            d104 1 1 c0t0d0s4
            d105 1 1 c0t0d0s5
            d106 1 1 c0t0d0s6(or d16, d116 on node 2)
            d0 -m d100
            d1 -m d101
            d4 -m d104
            d5 -m d105
            d6 -m d106 (or d16, d116 on node 2)

      # metaroot d0

            edit /etc/vfstab
            change swap to /dev/md/dsk/d1
            change /globaldevices to /dev/md/dsk/d6 (d16 on node 2)
            change /var to /dev/md/dsk/d4
            change /var/crash to /dev/md/dsk/5
            turn on UFS logging on / and /globaldevices

      # reboot
      # metainit -f

            d200 1 1 c1t0d0s0
            d201 1 1 c1t0d0s1
            d204 1 1 c1t0d0s4
            d205 1 1 c1t0d0s5
            d206 1 1 c1t0d0s6 (d216 on node 2)

      # metattach d0 d200
      # metattach d1 d201
      # metattach d4 d204
      # metattach d5 d205
      # metattach d6 d206 (d16 d216 on node 2)

Change devalias for mirror: (both nodes)

      halt
      devalias mirror /sbu@7,0/QLGC,ips@0,10000/sd0,0
      setenv use-nvramrc? true
      boot

#1. Solaris 10 Patches  

#2. Sun Cluster 3.1 Update 4

#3. RAC Support Packages

SunCluster_Oracle_RAC_CVM_3.1
SunCluster_Oracle_RAC_FRAMEWORK_3.1
SunCluster_Oracle_RAC_HWRAID_3.1
SunCluster_Oracle_RAC_SVM_3.1

#4. UDLM 3.3.4.8  for S10:

#5. Oracle 10g RAC Pkage  Install

 +++++++++++++++++++++++++++++

 -> examples ...SC3.1U4 with SVM

 

 

Mirror Boot disk

metadb -a -c3 -f /dev/rdsk/c0t0d0s7

metainit -f d150 1 1 c0t0d0s0
metainit -f d151 1 1 c0t1d0s0

metainit -f d152 1 1 c0t0d0s1
metainit -f d153 1 1 c0t1d0s1

metainit -f d154 1 1 c0t0d0s3
metainit -f d155 1 1 c0t1d0s3

metainit d100 -m d150
metainit d101 -m d152
metainit d102 -m d154

metattach d100 d151
metattach d101 d153
metattach d102 d155

metainit -f d156 1 1 c0t0d0s4
metainit -f d157 1 1 c0t1d0s4
metainit -f d158 1 1 c0t0d0s5
metainit -f d159 1 1 c0t1d0s5

metainit d103 -m d156
metainit d104 -m d158

metattach d103 d157
metattach d104 d159

===================================================

Local Filesystem (Archive etc) setup

metaset -s db1arch -a -h intdb1 intdb2

metaset -s db2arch -a -h intdb2 intdb1

metaset -s db2arch -a -h intdb2 intdb1
metaset -s db1arch -a /dev/did/rdsk/d4
metaset -s db1arch -a /dev/did/rdsk/d5
metaset -s db2arch -a /dev/did/rdsk/d21
metaset -s db2arch -a /dev/did/rdsk/d22

metainit -s db1arch d110 2 1 /dev/did/rdsk/d4s0 1 /dev/did/rdsk/d5s0
metainit -s db2arch d210 2 1 /dev/did/rdsk/d21s0 1 /dev/did/rdsk/d22s0

metainit -s db1arch d111 -p d110 60g

newfs /dev/md/rdsk/db1arch /d111

metainit -s db2arch d211 -p d210 60g

newfs  /dev/md/rdsk/db2/arch d211

scrgadm -a -g intdb1-rg -h intdb1,intdb2
scrgadm -a -g intdb2-rg -h intdb2,intdb1


scrgadm -a -g intdb1-rg -j db1arch-rs -t SUNW.HAStoragePlus -x FilesystemMountPoints=/p1_ar1 -x GlobalDevicePaths=db1arch -x AffinityOn=TRUE
scrgadm -a -g intdb2-rg -j db2arch-rs -t SUNW.HAStoragePlus -x FilesystemMountPoints=/p2_ar2 -x GlobalDevicePaths=db2arch -x AffinityOn=TRUE

root@intdb1  metaset -s intrac -a -h intdb1 intdb2
intdb2: RPC: Program not registered
root@intdb1  metaset -s intrac

Set name = intrac, Set number = 3

Host                Owner
  intdb1            
  intdb2            
root@intdb1  metaset -s intrac -a -m intdb1
root@intdb1  metaset -s intrac -a -m intdb2
root@intdb1  medstat -s intrac
Mediator                Status  Golden
intdb1                  Ok      No
intdb2                  Ok      No
===========================================

RAC Volume

 metaset -s intrac -a -M  intdb1 intdb2

-- Multi-owner Device Groups --

                              Device Group        Online Status
                              ------------        -------------
  Multi-owner device group:   intrac              -

 
metaset -s intrac -a /dev/did/rdsk/d6 ~ d 30

metainit -s intrac d300 15 1 /dev/did/rdsk/d6s0 1 /dev/did/rdsk/d7s0 1 /dev/did/rdsk/d8s0 1 /dev/did/rdsk/d9s0 1 /dev/did/rdsk/d10s0 1 /dev/did/rdsk/d11s0 1 /dev/did/rdsk/d12s0 1 /dev/did/rdsk/d13s0 1 /dev/did/rdsk/d14s0 1 /dev/did/rdsk/d15s0 1 /dev/did/rdsk/d16s0 1 /dev/did/rdsk/d17s0 1 /dev/did/rdsk/d18s0 1 /dev/did/rdsk/d19s0 1 /dev/did/rdsk/d20s0

======= Redo Log ============
metainit -s intrac d301 -p d300 255m
metainit -s intrac d302 -p d300 255m
metainit -s intrac d303 -p d300 255m
metainit -s intrac d304 -p d300 255m
metainit -s intrac d305 -p d300 255m
metainit -s intrac d306 -p d300 255m
metainit -s intrac d307 -p d300 255m
metainit -s intrac d308 -p d300 255m
metainit -s intrac d309 -p d300 255m
metainit -s intrac d310 -p d300 255m
metainit -s intrac d311 -p d300 255m
metainit -s intrac d312 -p d300 255m
metainit -s intrac d313 -p d300 255m
metainit -s intrac d314 -p d300 255m
metainit -s intrac d315 -p d300 255m
metainit -s intrac d316 -p d300 255m

===System Engin ===========
metainit -s intrac d317 -p d300 55m
metainit -s intrac d318 -p d300 155m
metainit -s intrac d319 -p d300 155m
metainit -s intrac d320 -p d300 155m
metainit -s intrac d321 -p d300 155m
metainit -s intrac d322 -p d300 4005m
metainit -s intrac d323 -p d300 4005m
metainit -s intrac d324 -p d300 105m
metainit -s intrac d325 -p d300 105m
metainit -s intrac d326 -p d300 2005m
metainit -s intrac d327 -p d300 2005m
metainit -s intrac d328 -p d300 2005m
metainit -s intrac d329 -p d300 2005m

=======Data Table Spabe ========
metainit -s intrac d330 -p d300 2005m
metainit -s intrac d331 -p d300 2005m
metainit -s intrac d332 -p d300 2005m
metainit -s intrac d333 -p d300 2005m
metainit -s intrac d334 -p d300 2005m
metainit -s intrac d335 -p d300 2005m
metainit -s intrac d336 -p d300 2005m
metainit -s intrac d337 -p d300 2005m
metainit -s intrac d338 -p d300 2005m
metainit -s intrac d339 -p d300 2005m
metainit -s intrac d340 -p d300 2005m
metainit -s intrac d341 -p d300 2005m
metainit -s intrac d342 -p d300 2005m
metainit -s intrac d343 -p d300 2005m
metainit -s intrac d344 -p d300 2005m
metainit -s intrac d345 -p d300 2005m
metainit -s intrac d346 -p d300 2005m
metainit -s intrac d347 -p d300 2005m
metainit -s intrac d348 -p d300 2005m
metainit -s intrac d349 -p d300 2005m
metainit -s intrac d350 -p d300 2005m
metainit -s intrac d351 -p d300 2005m


# /etc/rc3.d/s30initucmm start

scrgadm -at SUNW.rac_framework
scrgadm -at SUNW.rac_udlm
scrgadm -at SUNW.rac_svm
scrgadm -a -g rac-rg -y maximum_primaries=2 -y desired_primaries=2 -y nodelist=intdb1,intdb2
scrgadm -a -j rac-framework-rs -g rac-rg -t SUNW.rac_framework
scrgadm -a -j rac-udlm-rs -g rac-rg -t SUNW.rac_udlm -y resource_dependencies=rac-framework-rs -x port=7000
scrgadm -a -j rac-svm-rs -g rac-rg -t SUNW.rac_svm -y resource_dependencies=rac-framework-rs
=================================================================================================
 

 

수요일 7월 18, 2007

Solaris Cluster software provides the framework and API required to make applications highly
available on Solaris OS. The software application, designed for solaris, does not have to
be modified to use Solaris Cluster API. Instead, you write an agent which acts as the interface
between Solaris Cluster core software and the application. Solaris Cluster comes bundled with a
rich portfolio of agents, also called data services, which make applications highly available on
Solaris Cluster. These agents, designed and developed by the Solaris Cluster Engineering team,
have undergone rigourous testing by the internal Quality Assurance engineers.

Agents for several software products are available in Solaris Cluster 3.1 and the Solaris Cluster 3.2
releases. For details on the supported applications and how to configure and administer the agents
for the supported applications please refer to the Data Service administration guides, available
at the following location:

http://docs.sun.com/app/docs/coll/1574.1/

 Writing Custom Data Services
-----------------------------

If an agent for any software application is not already available then, you can write an agent
for that application by using the Data Service Development tools available in the product.

First, check if the application can be made highly available on Solaris Cluster software. The
following chapter in the Solaris Cluster Data Services Developer's Guide lists everything you need
to verify your application's cluster readiness.

http://docs.sun.com/app/docs/doc/819-2972/6n57ngipe?a=view

Most of the applications can be integrated with Solaris Cluster software right out of the box.
Sometimes you might have to enhance the application to be able to integrate with Solaris Cluster.
Once the application is ready for integration, use the Solaris Cluster Agent Builder to
generate an agent for you. The Solaris Cluster Agent Builder not only generates the code for you
but also generates the Makefiles to compile the code and build a nice Solaris package. This
generated package can be easily installed by using the pkgadd utility. The Solaris Cluster Agent
Builder can generate agent source code in C programming language or ksh. The following chapter
in the Data Services Developers Guide explains how to use the Agent Builder to develop an agent.

http://docs.sun.com/app/docs/doc/819-2972/6n57ngisa?a=view

The Solaris Cluster Agent Builder and the API library is available as a package, SUNWscdsdev,
which can be downloaded on to your desktop. Download the SUNWscdsdev package on your desktop and
follow the instructions in the Developers guide to generate and compile an agent for the Solaris
Cluster Software.

If you do not want to write a seperate agent for your application, you can use the Generic Data
Service (GDS) agent to make your application HA on Solaris Cluster software. Generic Data Service,
as the name suggests, is a generic agent designed by Solaris Cluster Engineering. GDS takes as an
input, scripts to start, stop, validate, and probe an application. Instead of writing a separate agent
for your application, you just write scripts to start, stop, validate, and probe your application
and supply these scripts as extension properties to the GDS resource at the time of creation. The
following chapter in the Data Services Developers Guide explains how to use GDS to make applications
Highly Available on Solaris Cluster.

~ ~ ~

The Solaris Cluster Agent Builder can be downloaded from the following location:

http://www.sun.com/download/products.xml?id=45b160e5

To test the agent, the Solaris Cluster software has to be installed and configured. A single node cluster
can be configured to test an agent. The Solaris Cluster 3.2 Software and the Solaris Cluster agents can
be downloaded from the following location:

http://www.sun.com/download/products.xml?id=4581ab9e

Also, check out http://blogs.sun.com/SC for some cool tips and other information straight from the
Solaris Cluster engineering organization.

월요일 7월 09, 2007

 Open HA Cluster G11N agents source released | 07/05/2007

The globalization (G11N) source code for the Solaris Cluster Agents is now available as part of the Open High Availability Cluster code base.

Browse the source

Download the source

Open HA Cluster Agents source released | 06/27/2007

The source code for the Open High Availability Cluster agents and agents test suite was released today. See the downloads page for details.

Open HA Cluster Agents Test Suite source code released | 06/27/2007

The source code for the Data Services Automated Test Suite was released today. See the downloads page for details.

 

 

 http://www.sun.com/software/solaris/cluster/support.xml

 

The majority of Open High Availability Cluster code is released under the Common Development and Distribution License (CDDL) Version 1.0.

Source based on existing open source projects will continue to be available under their current licenses. Some binary components are covered under the OpenSolaris Binary License and some are covered under other open source licenses. Specific download pages provide license information associated with the available component pieces.

Running Open HA Cluster

  • Solaris Cluster Express, the release of Solaris Cluster for the OpenSolaris platform, will be made available in the near future.
  • In the meantime, you can run the open-source agents on Solaris Cluster 3.2 on Solaris 10.

Building Open HA Cluster

  • Download the latest Open HA Cluster source, build tools, and related binaries.
  • Download the latest Open HA Cluster test source.

Building Agents

  • Building Agents
    Instructions for downloading, installing and building the Open HA Cluster Agents.

Building G11N

  • Building Agents G11N
    Instructions for downloading, installing and building the Open HA Cluster Agents G11N.

Building Tests

목요일 5월 03, 2007

One the most useful new command I found in Solaris 10 is fcinfo, a command line interface that will display information on HBA ports on a host, but also many useful bits of information on connected storage remote port WWN, raid type, link status,etc.

 root@node57 # fcinfo hba-port -l
HBA Port WWN: 10000000c9503663
        OS Device Name: /dev/cfg/c3
        Manufacturer: Sun Microsystems, Inc.
        Model: LP10000-S
        Type: L-port
        State: online
        Supported Speeds: 1Gb 2Gb
        Current Speed: 2Gb
        Node WWN: 20000000c9503663
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 6
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 24
                Invalid CRC Count: 0
HBA Port WWN: 10000000c9504044
        OS Device Name: /dev/cfg/c2
        Manufacturer: Sun Microsystems, Inc.
        Model: LP10000-S
        Type: L-port
        State: online
        Supported Speeds: 1Gb 2Gb
        Current Speed: 2Gb
        Node WWN: 20000000c9504044
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 15
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 62
                Invalid CRC Count: 0
HBA Port WWN: 210000e08b076df5
        OS Device Name: /dev/cfg/c4
        Manufacturer: QLogic Corp.
        Model: 375-3019-xx
        Type: unknown
        State: offline
        Supported Speeds: 1Gb
        Current Speed: not established
        Node WWN: 200000e08b076df5
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
root@node57 # fcinfo remote-port -sl -p 10000000c9503663
Remote Port WWN: 216000c0ff886d4f
        Active FC4 Types:
        SCSI Target: yes
        Node WWN: 206000c0ff086d4f
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 3
                Loss of Signal Count: 3
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
        LUN: 0
          Vendor: SUN
          Product: StorEdge 3510
          OS Device Name: /dev/rdsk/c7t600C0FF000000000086D4F0F39F16600d0s2
        LUN: 1
          Vendor: SUN
          Product: StorEdge 3510
          OS Device Name: /dev/rdsk/c7t600C0FF000000000086D4F17C87C9B00d0s2
Remote Port WWN: 10000000c9504044
        Active FC4 Types:
        SCSI Target: no
        Node WWN: 20000000c9504044
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 15
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 62
                Invalid CRC Count: 0
root@node57 #

수요일 8월 09, 2006

RAID-Z is a data/parity scheme like RAID-5, but it uses dynamic stripe width. Every block is its own RAID-Z stripe, regardless of blocksize. This means that every RAID-Z write is a full-stripe write. This, when combined with the copy-on-write transactional semantics of ZFS, completely eliminates the RAID write hole. RAID-Z is also faster than traditional RAID because it never has to do read-modify-write.

Whoa, whoa, whoa -- that's it? Variable stripe width? Geez, that seems pretty obvious. If it's such a good idea, why doesn't everybody do it?

Well, the tricky bit here is RAID-Z reconstruction. Because the stripes are all different sizes, there's no simple formula like "all the disks XOR to zero." You have to traverse the filesystem metadata to determine the RAID-Z geometry. Note that this would be impossible if the filesystem and the RAID array were separate products, which is why there's nothing like RAID-Z in the storage market today. You really need an integrated view of the logical and physical structure of the data to pull it off.

But wait, you say: isn't that slow? Isn't it expensive to traverse all the metadata? Actually, it's a trade-off. If your storage pool is very close to full, then yes, it's slower. But if it's not too close to full, then metadata-driven reconstruction is actually faster because it only copies live data; it doesn't waste time copying unallocated disk space.

But far more important, going through the metadata means that ZFS can validate every block against its 256-bit checksum as it goes. Traditional RAID products can't do this; they simply XOR the data together blindly.

Which brings us to the coolest thing about RAID-Z: self-healing data. In addition to handling whole-disk failure, RAID-Z can also detect and correct silent data corruption. Whenever you read a RAID-Z block, ZFS compares it against its checksum. If the data disks didn't return the right answer, ZFS reads the parity and then does combinatorial reconstruction to figure out which disk returned bad data. It then repairs the damaged disk and returns good data to the application. ZFS also reports the incident through Solaris FMA so that the system administrator knows that one of the disks is silently failing.

Finally, note that RAID-Z doesn't require any special hardware. It doesn't need NVRAM for correctness, and it doesn't need write buffering for good performance. With RAID-Z, ZFS makes good on the original RAID promise: it provides fast, reliable storage using cheap, commodity disks.


For a real-world example of RAID-Z detecting and correcting silent data corruption on flaky hardware, check out Eric Lowe's SATA saga.

The current RAID-Z algorithm is single-parity, but the RAID-Z concept works for any RAID flavor. A double-parity version is in the works.

One last thing that fellow programmers will appreciate: the entire RAID-Z implementation is just 599 lines.


[Read More]