<?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>Admin Aquatic</title>
	<atom:link href="http://www.dcmicrosystem.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.dcmicrosystem.com</link>
	<description>Paradise For Sys Admin</description>
	<lastBuildDate>Tue, 23 Mar 2010 15:18:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Solaris Kernel Tuning for Security</title>
		<link>http://www.dcmicrosystem.com/?p=40</link>
		<comments>http://www.dcmicrosystem.com/?p=40#comments</comments>
		<pubDate>Tue, 23 Mar 2010 15:16:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Solaris]]></category>
		<category><![CDATA[kernel perameter]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=40</guid>
		<description><![CDATA[Introduction 
The Solaris kernel provides a great deal of user-configurable control over the system TCP/IP stack. Everything from cache table lifetimes to the number of TCP connections that the system can address are controllable. However, without understanding the underlying need for tuning these kernel parameters many system administrators choose to ignore them &#8211; thereby leaving [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction </strong><br />
The Solaris kernel provides a great deal of user-configurable control over the system TCP/IP stack. Everything from cache table lifetimes to the number of TCP connections that the system can address are controllable. However, without understanding the underlying need for tuning these kernel parameters many system administrators choose to ignore them &#8211; thereby leaving their systems vulnerable to a resourceful assailant.<br />
<strong>Solaris Kernel Tools </strong><br />
The only tool available to Solaris system administrators for tuning kernel parameters is ndd. Currently, ndd only supports the TCP/IP kernel drivers. It can be used to both show and set the values of parameters for these drivers.<br />
<strong>Solaris Kernel Parameters</strong><br />
In general to show a particular parameter the command format is:<br />
      # ndd /dev/<driver>
<parameter>
where <driver> is one of the following: ARP, IP, TCP, and UDP. To view all parameters for a particular driver the command is:<br />
      # ndd /dev/<driver> \?<br />
To set a kernel parameter using ndd, the format of the command is:<br />
      # ndd -set /dev/<driver>
<parameter> <value><br />
Unfortunately, changes to the Solaris kernel parameter values using ndd are not permanent. The values for these parameters return to default upon system reboot. To make these changes more permanent a system administrator needs to put these changes into a shell script that is run at system boot (one possible location would be /etc/init.d/inetinit or in a separate shell script). One of the primary problems with setting these parameters into a shell script is that the parameters are implementation-specific and may change from one Solaris release to another.<br />
<strong>ARP </strong><br />
ARP (Address Resolution Protocol) is used to dynamically map layer-3 network addresses to data-link addresses. When one system wants to communicate with another system on a network it first sends an ARP packet to the broadcast address, FF:FF:FF:FF:FF:FF. The packet asks the simple question: &#8220;who has network address A?&#8230;tell network address B&#8221;. Since all hosts on a network receive these broadcast packets, system A receives the ARP request and sends back a response. The originating host then uses the responses to its ARP broadcasts to build a table, or cache, mapping the 32-bit IP addresses to Layer-2 hardware, or MAC, addresses. A second table is maintained by the network layer. This table is built from information provided by the data-link layer and contains network-routing information for active connections. The network layer requests MAC addresses from the data-link layer and inserts these addresses into a network routing table. Network routing entries expire after 20 minutes.<br />
When a network host prepares to communicate with another the IP layer checks the ARP cache first. If an entry for the network peer does not exist in the cache, an ARP request is broadcasted. ARP cache entries expire after five minutes.<br />
The ARP cache is susceptible to two types of attacks: ARP cache poisoning and ARP spoofing. ARP cache poisoning involves &#8220;inserting&#8221; either a non-existent ARP address or an incorrect ARP address into a system&#8217;s ARP cache. This results in a denial of service since the target system will send packets to the peer&#8217;s IP address but the MAC address will be incorrect.<br />
ARP spoofing can result in system compromise. Just like IP spoofing, ARP spoofing relies on, first, disabling a host on the network so that it cannot reply to any ARP request broadcasts. Once that is done the attacker can configure the disabled host&#8217;s IP address on the attacking host. When the victim host tries to communicate with the disabled host the attacker&#8217;s system responds to any ARP request broadcasts, thereby inserting its MAC address in the victim&#8217;s ARP cache. Communication between the two hosts can then proceed normally.<br />
It is very difficult to defend against ARP attacks. One defence against ARP attacks is to reduce the lifetime of cache entries. The cache lifetime is determined by the kernel parameter arp_cleanup_interval. The IP routing table entry lifetime is controlled by the kernel parameter ip_ire_flush_interval<br />
     # ndd -set /dev/arp arp_cleanup_interval <time>     # ndd -set /dev/ip ip_ire_flush_interval <time><br />
where <time> is in milliseconds. Reducing the ARP cache timeout interval and the IP-routing table timeout interval will slow down an attacker but not stop them.<br />
Another option could be to create static ARP addresses for some systems. Static ARP cache entries are permanent and therefore do not expire. These entries can be deleted using the command arp -d. A third option would be to disable ARP processing on the system interface(s) altogether and add static ARP entries.<br />
<strong>IP Parameters</strong><br />
The Solaris kernel also provides for control of various characteristics of the IP network protocol. This functionality is provided through several parameters:<br />
	ip_forwarding 	ip_strict_dst_multihoming 	ip_forward_directed_broadcasts 	ip_forward_src_routed<br />
IP forwarding involves routing IP packets between two interfaces on the same system. Typically this is a job that a router performs, however, a Solaris system can perform this task as well. By default a system installed with Solaris will perform IP forwarding. This can be disabled by setting the kernel parameter ip_forwarding to 0:<br />
        # ndd -set /dev/ip ip_forwarding 0<br />
Another avenue of attack would be for an intruder to create packets that are destined onnly for networks that are connected to a multihomed server that does not forward IP packets. By setting the parameter ip_strict_dst_multihoming to 0 the system drops any packets that appear to originate from a network attached to another interface:<br />
        # ndd -set /dev/ip ip_strict_dst_multihoming 0<br />
Directed broadcasts are packets that are sent from one system on a foreign network to all systems on another network. Directed broadcasts are the basis for the &#8220;smurf&#8221; attack where forged ICMP packets are sent from a host to the broadcast address of a remote network. The source address in the ICMP packets is forged to contain the address of the victim host. The systems on the remote network receive the ICMP packet and then reply back to the victim host thereby flooding the host with traffic. Any Solaris system that has IP forwarding enabled will forward directed broadcasts as well. To disable the forwarding of directed broadcasts set ip_forward_directed_broadcasts to 0:<br />
        # ndd -set /dev/ip ip_forward_directed_broadcasts 0<br />
When packets travel between one host and another on a network their path is determined by either dedicated routers or hosts providing routing services. However, IP has the ability to specify the route between the source and destination. This ability comes in one of two forms: strict and loose. With a strict source route, the sender specifies the address of every intermediate hop between it and the destination. With loose source routing the sender only specifies some of the intermediate hops leaving routers free to choose any path between the two systems. Source routing may be used to bypass security measures in the network topology. There is no reason to see source-routed packets in a network. Any host that does allow IP-forwarding should silently drop source-routed packets by setting the Solaris kernel parameter ip_forward_src_routed to 0:<br />
        # ndd -set /dev/ip ip_forward_src_routed 0<br />
<strong>TCP Parameters </strong><br />
In September 1996, Phrack Magazine published an article titled &#8220;Project Neptune&#8221;. This article described a type denial of service attack known as a SYN flood. The goal of this attack is not necessarily to break into a system but to render the system unusable from the perspective of the internet or intranet. The attack exploits the basic way a TCP connection works. When a system attempts to connect to a server using TCP the sender a TCP/IP packet to the destination with the SYN bit set. This SYN packet is then acknowledged by the destination with a packet with both the SYN and ACK bits set in the TCP header. The sender then replies to SYN-ACK packet from the destination by sending its an ACK packet back. This &#8220;3-way&#8221; handshake looks something like:<br />
 	Sender(client)		              Destination(server) 	 	   SYN &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;->         (Sequence #: X)  	       <------------------------------  SYN-ACK 					     (Sequence #: X+1, Sequence #: Y) 	   ACK ------------------------------->	         (Sequence #: Y+1)<br />
The abuse can occur when the destination host has responded to the sender with a SYN-ACK but does not receive an ACK back from the sending host. This then leaves the destination host connection in a &#8220;half-open&#8221; state. The source host then opens a new TCP connection with the destination host and repeats the process. This process continues until all possible TCP socket connections that the destination host can handle are in the &#8220;half-open&#8221; state. Once this happens, no further TCP SYN packets can be processed by the target until the &#8220;half-open&#8221; connections are removed from the TCP connection queue.<br />
One way to determine if a Solaris system is under a TCP SYN attack would be to monitor the number of TCP connections in a SYN_RCVD state:<br />
        # netstat -an -f inet | grep SYN_RCVD | wc -l<br />
This value can be compared to a baseline value taken when the machine is running under normal circumstances. Solaris provides another way to determine if a machine is under a TCP SYN attack. By running the command:<br />
        # netstat -s -P tcp<br />
and inspecting the values of the parameters tcpTimRetransDrop and tcpListenDrop a TCP SYN attack can be identified. The parameter tcpTimRetransDrop shows the number of aborts since boot time due to abort time expirations. This value includes both the SYN requests as well as established TCP connections.<br />
The parameter tcpListenDrop shows the number of SYN requests that have been refused since the system was booted because of a TCP queue backlog. There is a high probability that the system is under a TCP SYN attack if the tcpListenDrop value increases quickly along with the value of tcpTimRetransDrop.<br />
To offset such an attack the administrator must do two things: </p>
<p>a) shorten the value of the abort timer, and<br />
b) lengthen the TCP connection queue. </p>
<p>To shorten the abort timer the kernel parameter: tcp_ip_abort_cinterval can be used. The value for this parameter is given in milliseconds. By default the abort timer interval is 180 seconds. To set the abort time to 60 seconds the system administrator can use the command:<br />
        # ndd -set /dev/tcp tcp_ip_abort_cinterval 60000<br />
The kernel parameter tcp_conn_req_max_q0 controls the queue size for unestablished TCP connections in Solaris 2.6 and above (or in Solaris 2.5.1 w ith patch 103581-11). The default value for tcp_conn_req_max_q0 is 1024. To increase the queue size the following command can be used:<br />
        # ndd -set /dev/tcp tcp_conn_req_max_q0 2048<br />
Another type of SYN attack involves exhausting the TCP established connection queue. This attack is not as desirable as the TCP SYN attack mentioned above because of the fact that the connection can be traced back to its source, however, it still presents a problem. Solaris 2.6 and above (as well as Solaris 2.5.1 with patch 103582-11) provide control over the size of the established TCP connection queue. This control is provided by the kernel parameter tcp_conn_req_max_q. By default it is set at 128. To increase the established TCP connection queue, the command is:<br />
        # ndd -set /dev/tcp tcp_conn_req_max_q <size><br />
where <size> is the total number of active, established, TCP connections allowed to the host. Increasing either the TCP queue for unestablished connections or the TCP queue for established connections will require more memory. Without sufficient memory the server&#8217;s performance will be affected. Also, while this provides some measure of relief against TCP SYN attacks and TCP established connection exhaustion attacks these types of attacks depend on which side has more resources. If the attacker can produce more TCP connections (whether &#8220;half-open&#8221; or established) than the server can possibly handle this denial of service will succeed.<br />
<strong>Conclusion </strong><br />
The Solaris kernel has many configurable parameters that are security related. These parameters can be adjusted to strengthen the security posture of a system. The parameters cover such things as ARP timeouts, IP forwarding of packets, IP source routing of packets, TCP connection queue sizes, and many other factors governing network connections. By tuning the kernel properly a system administrator can even prevent OS fingerprinting of a Solaris system as provided by such tools as queso and nmap. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=40</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using vxmend to change plex status. from recover to Active</title>
		<link>http://www.dcmicrosystem.com/?p=38</link>
		<comments>http://www.dcmicrosystem.com/?p=38#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:58:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Veritas]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[plax]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=38</guid>
		<description><![CDATA[  Status=recover&#8230;&#8230; How to get it to active again ??
           #vxmend –o force off plexname
                Status=offline
            #vxmend on [...]]]></description>
			<content:encoded><![CDATA[<p>  Status=recover&#8230;&#8230; How to get it to active again ??</p>
<p>           #vxmend –o force off plexname<br />
                Status=offline</p>
<p>            #vxmend on plexname<br />
                Status=disabled / stale</p>
<p>            #vxmend –g oracledg fix clean plexname<br />
                Status=disabled / clean</p>
<p>             #vxvol start volname<br />
                 Status=enabled / active</p>
<p>             #fsck mountpoint<br />
                 Verify status each time with #vxprint –rth</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Net-appliances disk to veritas</title>
		<link>http://www.dcmicrosystem.com/?p=36</link>
		<comments>http://www.dcmicrosystem.com/?p=36#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:55:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Veritas]]></category>
		<category><![CDATA[Net-App]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=36</guid>
		<description><![CDATA[1. Configure LUNS ont the Netapplicances device
2. Make sure solaris can see the disk
    # format
3. Make sure veritas can see the disks
    # vxdctl enable
4. When these type of disk is new for veritas
    # vxddladm addjbod vid=NETAPP
    # vxddladm listjbod
  [...]]]></description>
			<content:encoded><![CDATA[<p>1. Configure LUNS ont the Netapplicances device</p>
<p>2. Make sure solaris can see the disk<br />
    # format<br />
3. Make sure veritas can see the disks<br />
    # vxdctl enable</p>
<p>4. When these type of disk is new for veritas</p>
<p>    # vxddladm addjbod vid=NETAPP<br />
    # vxddladm listjbod<br />
    # vxdiskadm<br />
            18    allow multipathing<br />
            yes    to continue<br />
            5    allow multipathing on all disks<br />
            all<br />
            yes<br />
            q<br />
            q    need to do this &#8230;now he execute the correct commands.</p>
<p>    # vxdisk list</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Load balancing to active/active disk arrays.</title>
		<link>http://www.dcmicrosystem.com/?p=34</link>
		<comments>http://www.dcmicrosystem.com/?p=34#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:54:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Veritas]]></category>
		<category><![CDATA[Load Balancing]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=34</guid>
		<description><![CDATA[Solaris sees two paths to the same disk ( c2t8d0 and c3t8d0 )
To see both disk paths in solaris
     # ls -las /dev/dsk/*t8do
Veritas creates only one metanode per LUN, this means that a disk with multipathing is seen as a single disk by the vxvm software.
To see the disk unique identifier [...]]]></description>
			<content:encoded><![CDATA[<p>Solaris sees two paths to the same disk ( c2t8d0 and c3t8d0 )</p>
<p>To see both disk paths in solaris</p>
<p>     # ls -las /dev/dsk/*t8do</p>
<p>Veritas creates only one metanode per LUN, this means that a disk with multipathing is seen as a single disk by the vxvm software.<br />
To see the disk unique identifier (=serial number)</p>
<p>      # /etc/vx/diag.d/vxdmpinq /dev/rdsk/c1t0d0s2</p>
<p>List the disks seen by veritas</p>
<p>    # vxdisk list</p>
<p> To enable or disable paths use</p>
<p>     # vxdiskadm</p>
<p><!--[if !supportLists]-->option 17.               <!--[endif]-->prevent multipathing</p>
<p><!--[if !supportLists]-->option 18.               <!--[endif]-->Allow multipathing</p>
<p>To list all controllers</p>
<p>     # vxdmpadm listctlr all</p>
<p>To list the paths that are excluded</p>
<p>     # vxdmpadm listexclude</p>
<p>To list subpaths to a specific controller to find out which devices are not functioning</p>
<p>     # vxdmpadm getsubpaths ctrl=c1</p>
<p>To list all the paths for a disk</p>
<p>     # vxdmpadm getsubpaths dmpnodename=c1t1d0s2</p>
<p>                        you will see that this disk is connected via c1 and c2</p>
<p>To see the disks names, how many paths there are, how many are disabled</p>
<p>    # vxdmpadm getdmpnode enclosure=SENA0</p>
<p>To disable a paths        </p>
<p>    # vxdmpadm disable ctrl=c1</p>
<p>To verify status of all controllers</p>
<p>     # vxdmpadm listctrl all</p>
<p> To enable a path again</p>
<p>     # vxdmpadm enable ctrl=c1</p>
<p>To verify status do again</p>
<p>     #vxdmpadm listctrl allow</p>
<p> ! It will take 5 minutes before you see it is enabled again !</p>
<p>To speed this up do</p>
<p>    # vxdctl enable</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=34</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding disks to existing diskgroup and creating new volume</title>
		<link>http://www.dcmicrosystem.com/?p=32</link>
		<comments>http://www.dcmicrosystem.com/?p=32#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:53:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Veritas]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[rootdg]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=32</guid>
		<description><![CDATA[1. Make sure solaris can see the disk.
    # format
       make sure the new disks are labeled  by solaris ( use type &#8220;0&#8243; = autodetect size , and label the disk !)
2. Make sure Veritas can see the new attached disk.
    # [...]]]></description>
			<content:encoded><![CDATA[<p>1. Make sure solaris can see the disk.</p>
<p>    # format<br />
       make sure the new disks are labeled  by solaris ( use type &#8220;0&#8243; = autodetect size , and label the disk !)</p>
<p>2. Make sure Veritas can see the new attached disk.</p>
<p>    # vxdctl enable<br />
        (allow VxVM to discover newly added disks &#8212; DISKS NEED TO BE FORMATTED FIRST using the &#8220;format&#8221; COMMAND !!) </p>
<p>    # vxdisk list<br />
        (will list disks detected, disks marked as &#8220;error&#8221; have not been initialized for use by VxVM) </p>
<p>3. Intitialise the disk in a specific diskgroup.</p>
<p>    # vxdiskadm<br />
            1. option one to initialiase the disks in the oracledg diskgroup<br />
                   make sure to use the list option so you can see that the disk is in error ( not yet initialised by veritas)</p>
<p>                   Or use the following commands:</p>
<p>                   ( # /usr/lib/vxvm/bin/vxdisksetup -i c2t32d8 )<br />
                   (# vxdg -g oracledg adddisk oracled01=c2t32d8 oracled02=c2t32d9)</p>
<p>4. Find out how much space is available on these new disks.</p>
<p>    # vxassist -g oracledg maxsize  oracled01 oracled02<br />
`<br />
          (gets maximum size available for creating  volume on specific disks )<br />
          ( suppose resulting number is 28000000 )</p>
<p>    # vxassist -g oracledg make newvol  28000000 stripeunit=48k columns=2 oracled01 oracled02<br />
        (creates volume u01vol of 28GB size using only oracled01 and oracled02 disks in a stripe layout) </p>
<p>    # mkfs -F vxfs -o largefiles,bsize=8192 /dev/vx/rdsk/oracledg/u01vol<br />
        (create filesystem with largefile option necessary to create datafiles bigger than 2g) </p>
<p>    # vi /etc/vfstab<br />
        (add filesystem so it is auto-mounted)</p>
<p>   # mount /newvol</p>
<p>    # df -k<br />
        verify new filesystem size.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expand a volume in VxVM from command line</title>
		<link>http://www.dcmicrosystem.com/?p=30</link>
		<comments>http://www.dcmicrosystem.com/?p=30#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:51:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Veritas]]></category>
		<category><![CDATA[rootdg]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=30</guid>
		<description><![CDATA[1. Make sure solaris can see the disk.
    # df -k
         verify the current size of the filesystem /u11 you want to grow
    # format
       make sure the new disks are labeled  by solaris [...]]]></description>
			<content:encoded><![CDATA[<p>1. Make sure solaris can see the disk.</p>
<p>    # df -k<br />
         verify the current size of the filesystem /u11 you want to grow<br />
    # format<br />
       make sure the new disks are labeled  by solaris ( use type &#8220;0&#8243; = autodetect size , and label the disk !)</p>
<p>2. Make sure Veritas can see the new attached disk.</p>
<p>    # vxdctl enable<br />
        (allow VxVM to discover newly added disks &#8212; DISKS NEED TO BE FORMATTED FIRST using the &#8220;format&#8221; COMMAND !!) </p>
<p>    # vxdisk list<br />
        (will list disks detected, disks marked as &#8220;error&#8221; have not been initialized for use by VxVM) </p>
<p>3. Intitialise the disk in a specific diskgroup.</p>
<p>    # vxdiskadm<br />
            1. option one to initialiase the disk in the oracledg diskgroup<br />
                   make sure to use the list option so you can see that the disk is in error ( not yet initialised by veritas)</p>
<p>                   Or use the following commands:</p>
<p>                   ( # /usr/lib/vxvm/bin/vxdisksetup -i c2t32d8 )<br />
                    (# vxdg -g oracledg adddisk oracled01=c2t32d8 oracled02=c2t32d9)</p>
<p>4. Find out how much space is available on these new disks.</p>
<p>    # vxassist -g oracledg maxgrow vol_u11 oracled01 oracled02<br />
`        Volume vol_u12 can be extended by 57675776 to 314105856 (153372Mb)<br />
          (gets maximum size available for resizing volume on specific disks) </p>
<p>    # vxassist -g oracledg growby vol_u11 57675776 oracled01 oracled02<br />
        (extends the volume as a stripe on these 2 extra disks)</p>
<p>        NOTE sometimes you get error<br />
        vxvm:vxassist: WARNING: dm:oracle16: No disk space matches specification<br />
        vxvm:vxassist: WARNING: dm:oracle17: No disk space matches specification </p>
<p>        (I believe this to be some sort of rounding error, because afterward the volume is extended !) </p>
<p>    # vxresize -g diskgroup volumename +2g</p>
<p>    This will make the filesystem 2 g bigger</p>
<p>    # vxprint -vt<br />
        Disk group: oracledg </p>
<p>        V NAME RVG KSTATE STATE LENGTH READPOL PREFPLEX UTYPE </p>
<p>        v backupvol &#8211; ENABLED ACTIVE 135254016 SELECT &#8211; fsgen<br />
        v ftpvol &#8211; ENABLED ACTIVE 6291456 SELECT &#8211; fsgen<br />
        v swapvol &#8211; ENABLED ACTIVE 28444672 SELECT &#8211; fsgen<br />
        v vol_u01 &#8211; ENABLED ACTIVE 55078912 SELECT &#8211; fsgen<br />
        v vol_u11 &#8211; ENABLED ACTIVE 314109952 SELECT vol_u11-01 fsgen<br />
        v vol_u12 &#8211; ENABLED ACTIVE 314105856 SELECT vol_u12-01 fsgen<br />
        v vol_u13 &#8211; ENABLED ACTIVE 58720256 SELECT &#8211; fsgen </p>
<p>    # /opt/VRTSvxfs/sbin/fsadm -b 314109952 /u11<br />
        File system will be increased.</p>
<p>    # df -k<br />
        verify new filesystem size.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=30</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server Configuration for Solaris JumpStart Software</title>
		<link>http://www.dcmicrosystem.com/?p=28</link>
		<comments>http://www.dcmicrosystem.com/?p=28#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:50:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=28</guid>
		<description><![CDATA[The Solaris 9 Operating System offers an automatic installation process, Solaris JumpStart software. The Solaris JumpStart procedure enables you to install the Solaris OS automatically and configure it differently, depending on the characteristics of client systems. These identifying characteristics are used to select the correct configuration for each client system.
The following tasks are required to [...]]]></description>
			<content:encoded><![CDATA[<p>The Solaris 9 Operating System offers an automatic installation process, Solaris JumpStart software. The Solaris JumpStart procedure enables you to install the Solaris OS automatically and configure it differently, depending on the characteristics of client systems. These identifying characteristics are used to select the correct configuration for each client system.<br />
The following tasks are required to configure a single JumpStart server to provide basic software installation services using the JumpStart procedures:<br />
1.	Spool the operating system image.<br />
2.	Edit the sysidcfg file.<br />
3.	Edit the profile and rules.<br />
4.	Run the check script.<br />
5.	Run the add_install_client script.<br />
6.	Boot the client.</p>
<p>Step #1<br />
To spool the Solaris 9 boot and installation images to a local disk, complete the following steps:<br />
Create a directory with at least 800 Mbytes of space available to hold the Solaris OS image. Usually the /export/install directory is used.<br />
# mkdir /export/install<br />
Insert the Solaris 9 Software 1 of 2 CD-ROM in the CD-ROM drive or the Solaris 9 DVD in the DVD drive.<br />
Change the directory to the location of the setup_install_server script.<br />
# cd /cdrom/cdrom0/s0/Solaris_9/Tools<br />
Run the setup_install_server script to copy the Solaris 9 OS installation images to the local disk.<br />
#./setup_install_server /export/install<br />
When the setup_install_server script finishes, change the directory to root (/), and eject the CD-ROM or DVD.<br />
#cd /<br />
#eject cdrom<br />
If you use CD-ROM media, insert the Solaris 9 Software 2 of 2 CD-ROM in the CD-ROM drive.<br />
Change the directory to the location of the add_to_install_server script.<br />
# cd /cdrom/cdrom0/Solaris_9/Tools<br />
Run the add_to_install_server script to copy the remainder of the installation image to the local disk.<br />
#./add_to_install_server /export/install<br />
When add_to_install_server finishes, change the directory to root (/), and eject the CD-ROM.<br />
# cd /<br />
# eject cdrom</p>
<p>Step #2<br />
The sysidcfg file keeps the various types of system information such as locale, time_zone, and so on, and supplies the information to the client at the booting time.<br />
Create a directory to hold the sysidcfg file. Typically the /export/config directory holds the sysidcfg file.<br />
# mkdir /export/config<br />
Change the directory to /export/config, and create a file called sysidcfg using a text editor.<br />
# cd /export/config<br />
# vi sysidcfg<br />
In the sysidcfg file, add the following lines. Substitute values that are appropriate for your systems, location, and network.<br />
network-interface=primary {protocol-ipv6=no<br />
				netmask=255.255.255.0}</p>
<p>security_policy=none<br />
name_service=none<br />
time_zone=US/Mountain<br />
system_locale=en_us<br />
Save the sysidcfg file, and exit your edit session.</p>
<p>Step #3<br />
a. Rules<br />
Create a directory to hold the rules file if this directory does not already exist. Usually, the /export/config directory holds the rules file.<br />
# mkdir /export/config<br />
Change the directory to /export/config, and create a file called rules using a text editor.<br />
# cd /export/config<br />
# vi rules<br />
In the rules file, add the following line:<br />
hostname client_name &#8211; profile1 -<br />
For client_name, substitute the name of your JumpStart client. For example:<br />
hostname	sun1	- profile   -<br />
Save the rules file, and exit your edit session.<br />
b. Profiles<br />
Usually, the /export/config directory holds the profile file.<br />
Change the directory to /export/config, and create a file called profile using a text editor.<br />
# cd /export/config</p>
<p># vi profile1<br />
Add the following lines to the profile1 file:<br />
install_type	initial_install<br />
system_type	standalone<br />
partitioning	explicit<br />
filesys		c0t0d0s0	 free	/<br />
filesys		c0t0d0s1	128	swap<br />
cluster		SUNWCXall<br />
Save the profile1 file, and exit your edit session.</p>
<p>Step #4<br />
Before a JumpStart client can use a configuration provided by a JumpStart server, you must run the check script to produce a file called rules.ok. The check script validates the syntax of the rules file and the profile files. If the validation completes successfully, the check script creates the rules.ok file.<br />
Change the directory to the location of the check script.<br />
# cd /export/install/Solaris_9/Misc/JumpStart_sample<br />
Copy the check script to the /export/config directory.<br />
# cp check /export/config<br />
Change the directory to /export/config, and run the check script.<br />
# cd /export/config<br />
#./check<br />
Validating rules&#8230;<br />
Validating profile profile1&#8230;<br />
The custom JumpStart configuration is ok.</p>
<p>Step #5<br />
a. Add a host entry.<br />
Edit the /etc/ethers file, and add an entry for the JumpStart client.<br />
#vi /etc/ethers </p>
<p>00-C0-26-84-34-A1		sun1<br />
Save and exit from the ethers file.<br />
Edit the /etc/inet/hosts file, and add an entry for the JumpStart client.<br />
#vi /etc/inet/hosts</p>
<p>192.168.1.1	sun1<br />
Save and exit from the hosts file.<br />
b. Add a client.<br />
Change the directory to the location of the add_install_client script on the server.<br />
# cd /export/install/Solaris_9/Tools<br />
Run the add_install_client script, and specify server and client information as follows. (Note: The following line of code should all be entered on one line.)<br />
#./add_install_client -c server_name:/export/config \<br />
    -p server_name:/export/config client_name platform_group<br />
For example:<br />
#./add-install-client -c sun:/export/config -p sun:/export/config sun1 sun4u<br />
Edit the /etc/dfs/dfstab file to add the following line:<br />
#vi /etc/dfs/dfstab</p>
<p>share -F nfs -o ro, anon=0 /export/install</p>
<p>share -F nfs -o ro, anon=0 /export/config<br />
Save and exit from the dfstab file.<br />
Run the shareall command to share the /export/config and /export/install directories.<br />
#shareall<br />
Verify that the /export/config and /export/install directories are currently shared.<br />
#share</p>
<p>Step #6<br />
Booting the JumpStart Client<br />
After the JumpStart server has been configured to provide all of the required services, you can initiate the installation process on the JumpStart client. To boot the JumpStart client, perform the following steps:<br />
a. Bring the JumpStart client to run state 0.<br />
# init 0<br />
b. Boot the client to initiate the software installation using the JumpStart procedure.<br />
ok boot net &#8211; install</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris SPARC Boot Sequence</title>
		<link>http://www.dcmicrosystem.com/?p=26</link>
		<comments>http://www.dcmicrosystem.com/?p=26#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:48:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=26</guid>
		<description><![CDATA[The following represents a summary of the boot process for a Solaris 2.x system on Sparc hardware.
Power On: Depending on the system involved, you may see some output on a serial terminal immediately after power on. This may take the form of a Hardware Power ON message on a large Enterprise server, or a &#8220;&#8216;&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>The following represents a summary of the boot process for a Solaris 2.x system on Sparc hardware.<br />
Power On: Depending on the system involved, you may see some output on a serial terminal immediately after power on. This may take the form of a Hardware Power ON message on a large Enterprise server, or a &#8220;&#8216;&#8221; or &#8220;,&#8221; in the case of an older Ultra system. These indications will not be present on a monitor connected directly to the server.<br />
POST: If the PROM diag-switch? parameter is set to true, output from the POST (Power On Self Test) will be viewable on a serial terminal. The PROM diag-level parameter determines the extent of the POST tests. (See the Hardware Diagnostics page for more information on these settings.) If a serial terminal is not connected, a prtdiag -v will show the results of the POST once the system has booted. If a keyboard is connected, it will beep and the keyboard lights will flash during POST. If the POST fails, an error indication may be displayed following the failure.<br />
Init System: The &#8220;Init System&#8221; process can be broken down into several discrete parts:<br />
•	OBP: If diag-switch? is set, an Entering OBP message will be seen on a serial terminal. The MMU (memory management unit) is enabled.<br />
•	NVRAM: If use-nvramrc? is set to true, read the NVRAMRC. This may contain information about boot devices, especially where the boot disk has been encapsulated with VxVM or DiskSuite.<br />
•	Probe All: This includes checking for SCSI or other disk drives and devices.<br />
•	Install Console: At this point, a directly connected monitor and keyboard will become active, or the serial port will become the system console access. If a keyboard is connected to the system, the lights will flash again during this step.<br />
•	Banner: The PROM banner will be displayed. This banner includes a logo, system type, PROM revision level, the ethernet address, and the hostid.<br />
•	Create Device Tree: The hardware device tree will be built. This device tree can be explored using PROM monitor commands at the ok> prompt, or by using prtconf once the system has been booted.<br />
Extended Diagnostics: If diag-switch? and diag-level are set, additional diagnostics will appear on the system console.<br />
auto-boot?: If the auto-boot? PROM parameter is set, the boot process will begin. Otherwise, the system will drop to the ok> PROM monitor prompt, or (if sunmon-compat? and security-mode are set) the > security prompt.<br />
The boot process will use the boot-device and boot-file PROM parameters unless diag-switch? is set. In this case, the boot process will use the diag-device and diag-file.<br />
bootblk: The OBP (Open Boot PROM) program loads the bootblk primary boot program from the boot-device (or diag-device, if diag-switch? is set). If the bootblk is not present or needs to be regenerated, it can be installed by running the installboot command after booting from a CDROM or the network. A copy of the bootblk is available at /usr/platform/`arch -k`/lib/fs/ufs/bootblk<br />
ufsboot: The secondary boot program, /platform/`arch -k`/ufsboot is run. This program loads the kernel core image files. If this file is corrupted or missing, a bootblk: can&#8217;t find the boot program or similar error message will be returned.<br />
kernel: The kernel is loaded and run. For 32-bit Solaris systems, the relevant files are:<br />
•	/platform/`arch -k`/kernel/unix<br />
•	/kernel/genunix<br />
For 64-bit Solaris systems, the files are:<br />
•	/platform/`arch -k`/kernel/sparcV9/unix<br />
•	/kernel/genunix<br />
As part of the kernel loading process, the kernel banner is displayed to the screen. This includes the kernel version number (including patch level, if appropriate) and the copyright notice.<br />
The kernel initializes itself and begins loading modules, reading the files with the ufsboot program until it has loaded enough modules to mount the root filesystem itself. At that point, ufsboot is unmapped and the kernel uses its own drivers. If the system complains about not being able to write to the root filesystem, it is stuck in this part of the boot process.<br />
The boot -a command singlesteps through this portion of the boot process. This can be a useful diagnostic procedure if the kernel is not loading properly.<br />
/etc/system: The /etc/system file is read by the kernel, and the system parameters are set.<br />
The following types of customization are available in the /etc/system file:<br />
•	moddir: Changes path of kernel modules.<br />
•	forceload: Forces loading of a kernel module.<br />
•	exclude: Excludes a particular kernel module.<br />
•	rootfs: Specify the system type for the root file system. (ufs is the default.)<br />
•	rootdev: Specify the physical device path for root.<br />
•	set: Set the value of a tuneable system parameter.<br />
If the /etc/system file is edited, it is strongly recommended that a copy of the working file be made to a well-known location. In the event that the new /etc/system file renders the system unbootable, it might be possible to bring the system up with a boot -a command that specifies the old file. If this has not been done, the system may need to be booted from CD or network so that the file can be mounted and edited.<br />
kernel initialized: The kernel creates PID 0 ( sched). The sched process is sometimes called the &#8220;swapper.&#8221;<br />
init: The kernel starts PID 1 (init).<br />
init: The init process reads the /etc/inittab and /etc/default/init and follows the instructions in those files.<br />
Some of the entries in the /etc/inittab are:<br />
•	fs: sysinit (usually /etc/rcS)<br />
•	is: default init level (usually 3, sometimes 2)<br />
•	s#: script associated with a run level (usually /sbin/rc#)<br />
rc scripts: The rc scripts execute the files in the /etc/rc#.d directories. They are run by the /sbin/rc# scripts, each of which corresponds to a run level.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving populated disks out of rootdg or moving rootdg to another system</title>
		<link>http://www.dcmicrosystem.com/?p=24</link>
		<comments>http://www.dcmicrosystem.com/?p=24#comments</comments>
		<pubDate>Fri, 19 Mar 2010 16:39:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Veritas]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[rootdg]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=24</guid>
		<description><![CDATA[First, moving populated disks between diskgroups.
Get a list of disks in the diskgroup that you intend to move the populated disks out of.
# vxdisk list &#124; grep rootdg 
Get the configuration of the diskgroup.
# vxprint -ht -g rootdg 
Determine which disks contain the volumes that are to be moved. 
Save the configuration of the desired [...]]]></description>
			<content:encoded><![CDATA[<p>First, moving populated disks between diskgroups.<br />
Get a list of disks in the diskgroup that you intend to move the populated disks out of.<br />
# vxdisk list | grep rootdg </p>
<p>Get the configuration of the diskgroup.<br />
# vxprint -ht -g rootdg </p>
<p>Determine which disks contain the volumes that are to be moved. </p>
<p>Save the configuration of the desired volumes in a format that can be used later by vxmake to recreate the volumes. Specify all volumes on the disks in question, plus any unassociated plexes and their child subdisks, plus any unassociated subdisks.<br />
# vxprint -hmQq -g rootdg vol01 vol02 vol03 > /tmp/volinfo </p>
<p>Unmount the appropriate filesystems, and/or stop any processes holding the volumes open. </p>
<p>Stop all the volumes.<br />
# vxvol -g rootdg stop vol01 vol02 vol03 </p>
<p>Remove from the configuration database the definitions of the structures ( (volumes, plexes, subdisks) to be moved. NOTE that this does not affect your data.<br />
# vxedit -g rootdg -r rm vol01 vol02 vol03 </p>
<p>Remove the disks from the original diskgroup.<br />
# vxdg -g roodg rmdisk rootdg01 rootdg02 rootdg03 rootdg04 </p>
<p>If you are moving the disks to a preexisting diskgroup, SKIP THIS STEP. If not, initialize the diskgroup using one of your disks. It is simplest to keep the old disk names until a later step.<br />
# vxdg init newdg rootdg01=c1t2d0s2 </p>
<p>Add the disks to their new disk group. It is simplest to keep the old disk names until a later step.<br />
# vxdg -g newdg adddisk rootdg02 rootdg03 rootdg04 </p>
<p>Verify that the disks are in their new diskgroup.<br />
# vxdisk list | grep newdg </p>
<p>Reload the object configuration into the new diskgroup.<br />
# vxmake -g newdg -d /tmp/volinfo </p>
<p>Verify the configuration of the new diskgroup.<br />
# vxprint -ht -g newdg </p>
<p>Test your data. </p>
<p>Second, moving rootdg between systems.</p>
<p>Get the diskgroup ID (dgid) of rootdg from the old host.<br />
# vxdisk -s list<br />
(example) </p>
<p>Disk:   c1t5d0s2type:   slicedflags:  online ready private autoconfig autoimport importeddiskid: 824180434.4523.csclust2dgname: rootdgdgid:   824180442.4528.csclust2hostid: csclust1 Disk:   c1t9d0s2type:   slicedflags:  online ready private autoconfig autoimport importeddiskid: 824180440.4525.csclust2dgname: rootdgdgid:   824180442.4528.csclust2hostid: csclust1 Disk:   c1t13d0s2type:   slicedflags:  online ready private autoconfig autoimport importeddiskid: 830532975.3418.csclust1dgname: rootdgdgid:   824180442.4528.csclust2hostid: csclust1</p>
<p>Shutdown the old host, remove the disks, and connect the disks to the new host. </p>
<p>Import the diskgroup with its new name, assigning ownership of the diskgroup to the new host, using the dgid for the diskgroup name.<br />
# vxdg -C -n newdg import 824180442.4528.csclust2 </p>
<p>Perform the necessary steps to make the new host and VxVM recognize the new disks. I.e. perform the steps necessary to make the OS see the disks, and then perform a &#8216;vxdctl enable&#8217; to restart vxconfigd so that VxVM also recognizes the disks. </p>
<p>Start all volumes in the diskgroup.<br />
# vxrecover -g newdg -sb </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring rootdg on a slice</title>
		<link>http://www.dcmicrosystem.com/?p=16</link>
		<comments>http://www.dcmicrosystem.com/?p=16#comments</comments>
		<pubDate>Mon, 25 Jan 2010 17:37:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Veritas]]></category>
		<category><![CDATA[rootdg]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.dcmicrosystem.com/?p=16</guid>
		<description><![CDATA[Use this procedure if you want to create a rootdg diskgroup on a single slice. 
Remember that rootdg is needed for Volume Manager to start the daemons. 
After this procedure vxinstall is no longer needed. Use vxdiskadm to create other diskgroups. 
1. Install the software packages for Veritas Volume Manager. 
2. Configure the slice as [...]]]></description>
			<content:encoded><![CDATA[<p>Use this procedure if you want to create a rootdg diskgroup on a single slice. </p>
<p>Remember that rootdg is needed for Volume Manager to start the daemons. </p>
<p>After this procedure vxinstall is no longer needed. Use vxdiskadm to create other diskgroups. </p>
<p>1. Install the software packages for Veritas Volume Manager. </p>
<p>2. Configure the slice as a virtual disk in the diskgroup rootdg<br />
  # vxconfigd -m disable  (to kill the vxconfigd)<br />
# vxdctl init  (to initialise VxVm database)<br />
# vxdg init rootdg (to create rootdg)<br />
# vxdctl add disk c0t0d0s7 type=simple (IGNORE THE WARNING : Not in configuration database)<br />
# vxdisk -f init c0t0d0s7 type=simple (to add a disk record)<br />
# vxdg adddisk c0t0d0s7 (make a slice into a virtual disk)<br />
# vxdctl enable (reread config in memory)<br />
# rm  /etc/vx/reconfig.d/state.d/install-db (remove placeholder file for vxinstall) </p>
<p>3. Reboot or restart daemons manually. </p>
<p>  # init 6 </p>
<p>4.Create other diskgroups with vxdiskadm </p>
<p> # vxdiskadm </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dcmicrosystem.com/?feed=rss2&amp;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
