Skip to main content

IP – Based Storage Area Network Configuration using iSCSI

Standard configuration options
  • Tool provided by Storage vendors
  • OpenFiler Open source  DOS
  • Manual Setup using iSCSI protocol
 Target is the storage server and Initiator is the client.
 Target (Ubuntu 12.04)
Ø  Install iscsitarget, iscsitarget-source, iscsitarget-dkms package
Ø  Format the disk and create the partitions as per your requirements. ( I have 10 GB for OCR &Voting Disk; 61 GB for oracle storage).
Ø  edit /etc/default/iscsitarget. Change the default value of ISCSITARGET_ENABLE=false over to ISCSITARGET_ENABLE=true.
Ø  Define LUNs in  /etc/iet/ietd.conf
     
Target iqn.2012-08.in.co.persistent:storage.disk0. pts0012
                  LUN 0 Path=/dev/cciss/c0d1p5,Type=fileio,ScsiId=lun0,ScsiSN=lun0

Node:
        0th LUN is mandatory.
        Make sure there is no space in LUN Definition above and every parameter is separated by “,”
Restart the service iscsitarget

Initiator (All RAC node RHEL5)
Ø  Install iscsi-initiator-util package.
       (Make sure that you have iscsi version >=  iscsi-initiator-utils-6.2.0.868-0.7.el5)
Ø  Edit  /etc/iscsi/iscsid.conf and set node.startup = automatic
·         Then restart the initiator: /etc/init.d/iscsi restart
·         Make sure iscsid service is configured to start at system boot up
$ chkconfig --list iscsid
iscsid          0:off   1:off   2:on    3:on    4:on    5:on    6:off
·         Using CHAP authentication for security : Edit /etc/iscsi/iscsid.conf
Enable following entries :
node.session.auth.authmethod = CHAP
node.session.auth.username = <<sanusername>>
node.session.auth.password = <<sanpassword>>
Ø  Discover the target  using command
                        $ iscsiadm –m discovery –p <<Target IP>>:3260
Ø  View detected nodes
                        $ iscsiadm –m node
Ø  Login to the LUNs ( use same sequence to login on all nodes so that the attached devices names will be identical )
            $iscsiadm -m node --targetname “<<inq name of first LUN>>" --portal “<< Target IP >>:3260" --login

Ø  Verify the sessions
           $ iscsiadm -m session -P3 | less

Ø  Now in $fdisk –l all newly attached iscsi drives will be shown ( make sure every LUN of storage has got same Device name on all RAC nodes)
Ø  Format newly added drives from any ONE node and use $partprobe to push partition table on all other nodes
Ø  Verify on all nodes if newly attached drives are showing valid portions using fdisk -l

For more details on Storage Initiator setup and RAC Ethernet tuning refer :
(http://www.scribd.com/doc/46183679/Red-Hat-Linux-v5-x-Software-iSCSI-Initiator-Configuration-MPIO-and-Tuning-Guide#outer_page_5)

Comments

  1. With the increasing demand for networking of content,the analysts predict that the demand for enterprise network storage system will hugely rise within 5 years and will account for 75% of all computer hardware expenditures.
    Storage area network cleveland

    ReplyDelete

Post a Comment

Popular posts from this blog

Some facts and Figures of WCF

SOAP Message in WCF: 1.        The max size of SOAP message in WCF is 9,223,372,036,854,775,807 bytes. Including metadata. 2.        For actual user data we can use 2,147,483,647 bytes out of it. 3.        With default setting WCF uses only 65536 bytes. 4.        We can change it by setting maxReceivedMessageSize in clients app.config file.    5.        So selection of data types in Data Contract and Data table will matter a lot! 6.       Reference :   http://blogs.msdn.com/drnick/archive/2006/03/16/552628.aspx          http://blogs.msdn.com/drnick/archive/2006/03/10/547568.aspx       “Amazing blog for WCF!” Data Contract: 1.        By Default WCF can serialize 65536 DataMember. 2.        We can change it to max  2147483646. 3.       How?  Please go to: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/4a81a226-175b-41d3-864a-181792c71ffe Tracing WCF service message: 1.       Enable message log of WCF: http://www.avingtonsolutions.com/blog/post/2008/07/25/Tracing-SOAP-Message

Drop all Objects from Schema In Postgres

To Drop all objects from Postgres Schema there could be following two approaches: Drop Schema with cascade all and re-create it again.  In some cases where you dont want to/not allowed to drop and recreate schema, its easy to look for objects on current schema and drop them. following script would help to do so, Create function which would do the task and then drop that function too. --- CREATE OR REPLACE FUNCTION drop_DB_objects() RETURNS VOID AS $$ DECLARE  rd_object RECORD; v_idx_statement VARCHAR(500);   BEGIN ---1. Dropping all stored functions RAISE NOTICE '%', 'Dropping all stored functions...'; FOR rd_object IN ( SELECT format('%I.%I(%s)', ns.nspname, p.proname, oidvectortypes(p.proargtypes)) as functionDef     FROM pg_proc p     INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)    WHERE ns.nspname = current_schema      AND p.proname <> 'drop_db_objects' )

Vacuum Analyze Full Schema in PostgreSQL Database

To analyze full database schema, you can use following shell script : -------------------------------------------------------------------------------------------------------------------------- #!/bin/sh rm -rf /tmp/vacuum_analyze_MyData.sql dbname="mydata" username="mydatadatamart" namespace="mydatadatamart" # Vacuum only those tables which are fragmented over 30% # Analyze tables only if they are not already # Process CMF and Groups Master table every time as they are master Tables=`psql $dbname $username << EOF SELECT 'VACUUM ANALYZE VERBOSE ' || tablename || ' ;' AS TableList   FROM ( SELECT *,       n_dead_tup > av_threshold AS "av_needed",       CASE WHEN reltuples > 0      THEN round(100.0 * n_dead_tup / (reltuples))       ELSE 0       END AS pct_dead FROM (SELECT C.relname AS TableName, pg_stat_get_tuples_inserted(C.oid) AS n_tup_ins, pg_stat_get_tuples_updated(