Sunday, January 18, 2026

 

How I got my Yadea E8S Pro Battery replaced

After two years of use, batteries (Graphene) became weak. Range was affected largely. It was not reliable while on the road.

 

Symptoms

-          Battery needs frequent recharge

-          Swollen batteries

-          Range decreased to an uncomfortable number

Initial Research and Questions

Initial research produced following outcomes.

1-      Market has many lithium battery chemistries with their own pros and cons

2-      Battery should not be replaced with new graphene batteries which are basically VRLA batteries (sealed or dry batteries in local language)

3-      I needed to decide which lithium chemistry is suitable for replacement keeping in view the cost and benefits of each.

4-      Main question was, if scotty can take on lithium battery or it strictly needs VRLA graphene batteries to work

5-      Finding anyone who may have already done it.

 

Following are answers to these questions.

1-      Lithium iron phosphate (LiFePo4) should be used keeping its long life and battery heat resistance in mind

2-      It was understood that investment on graphene batteries shall be a waste as it shall wear out after 2 years for sure

3-      There are many versions of LiFePo4 batteries in the market.

a.       New cells

b.       Cells from lots (container markets in Faisalabad and Lahore)

c.       Used cell from EV cars

d.       Since cells are available different ampere ratings, high ampere costs more than lower while higher ampere cells are space efficient while lower ampere cells required more space to fit.

4-      After so many calls across Pakistan, I found few contacts on social media who had changed their E8S Pro batteries with Lithium batteries instead of graphene VRLA batteries. So I got confirmation that this can be done.

5-       

References for Help

Posting information requests on Yadea’s WhatsApp channel and groups really helped.  

Current Status and Mileage

Currently battery is fixed in the same cabinet that was made for Graphene batteries, since battery size was matched. I have charged it 4 times since installation. JK BMS reports well over Bluetooth with charging and discharging status. Intended range is 125Km per charge, while I have noticed, till 100KM there is not range anxiety.

Who made the Battery.

Battery was made on request by Mr. Khawaja Salman in Multan. He is a good gentleman. As committed, he offered new LiFePo4 cells for battery. Contact can be shared on request.

 

 

Thursday, May 21, 2015

Mystery of knowledge and our (Muslims) current state of affairs!

How it works?

We all know, last prophet of Allah, Muhammad Peace be Upon Him is the person bestowed with the Last Book from Allah that confirms final deeds required to be successful. Quran documents all those deeds.

Unfortunately this concept is not that simple now a days. This complexity is due to misunderstanding of something called " Knowledge ".

Our current definition of knowledge is, merely,  what we read in a book/scripture etc, and are supposed to practice. All our preachers, people in Masjid every (Friday) Jumma prayer and so called religious people wandering around in society have same understanding. This understanding is confirmed by not what we speak but what we practice.

If you are reading this, please revisit the definition of knowledge.
What we read in a book is nothing but an information.
If we are inspired enough by what is written in book, we try to practice this.
Once one start practicing this, he/she find him/her self confronting new experiences, an experience which is limited to his/her own understanding and is very difficult to explain that experience in words. This experience affects all the things in a realm, one live in. Now this new experience is called knowledge.

Give me a moment to explain this by some example. I read in a book, i should start every work by seeking blessing of Allah by reciting "Bismilla". This is just an information and has nothing to do with me till i start practicing this. Once i start practicing this, i find new things in my daily living which are quite new to me and have a visible impact on how i live this life. This impact, as per my understanding, is knowledge.

How i discovered this:
When I started listening and doing things in life, I was put to a Masjid to learn how to read Quran.
In Masjid, being a Brailvi Masjid, I was introduced with different "Silslas" like Chishtiya, Qaadriya etc. Later in my after 30's, I discovered that teachings of all saints, founder of these "Silslas" were different. In fact it was impossible to follow ways of all the sects, while everyone seems right in their deeds. Question, that pinched myself for long, how is it possible that all these teachings have so different directions yet are considered right?

Later this mystery was solved by three words, Maloom (information), Amal (Practice) and Ilam (Knowledge). It is when one mixes "Maloom" with "Amal", it results in "Ilam" and Ilam is what is required for a practicing Muslim.

If i am unable to achieve Ilam with my Maloom and Amal, it is like things are being wasted. Of course, there are different stages of knowledge and everyone has its own piece of experience.

Importance of Ilam:
The person, who holds Ilam, is called Alim in Islam and islamic literature is all full explaining blessings for an Alim. And who doesn't know about prayer of Nabi PBUH, Rabbi Ziddni Ilman.

Results:
Please revisit your definition of Ilam and do not consider that Mulvi sb says about it. Reject all so called Alims who just read things from Quran and command you and have nothing to do with practice and gaining experience out of what is written.

Note:
This is a personal opinion and documented based on experience of a single person. You may have your own version.

May Allah bless us all!

Monday, April 7, 2014

Working with VxVM mirroring

How to make RAID 1 in simple steps. 

In Lab i have:


1- RHEL 6 system
2- two 2GB disks
   i - disk_4 -> i'll refer this disk as p_disk
  ii - disk_5 -> i'll refer this disk as s_disk

Note: disk_4 and disk_5 are names reported by OS in vxdisk -e list

"Making Mirror"
1- Create a disk group "mdg" with disk_4 as p_disk
vxdg init mdg p_disk=disk_4

check vxprint output for new DG

vxprint -g mdg 
Output is as follow:
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -


2- Now add second disk in "mdg" as s_disk
vxdg -g mdg adddisk s_disk=disk_5

Verify disk addition in vxprint output:
[root@lab1 ~]# vxprint -g mdg
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -
dm s_disk       disk_5       -        4099840  -        -        -       -


3- Create a volume in DG "mdg" on disk s_disk named "mvol"
vxassist -g mdg make mvol 4099840 s_disk

Verify volume creation from vxprint output
[root@lab1 ~]# vxprint -g mdg
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -
dm s_disk       disk_5       -        4099840  -        -        -       -

v  mvol         fsgen        ENABLED  4099840  -        ACTIVE   -       -
pl mvol-01      mvol         ENABLED  4099840  -        ACTIVE   -       -
sd s_disk-01    mvol-01      ENABLED  4099840  0        -        -       -


4- Add mirror to "mvol" on disk p_disk
vxassist -g mdg -b mirror mvol p_disk

Verify status using vxprint as follow:
[root@lab1 ~]# vxprint -g mdg
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -
dm s_disk       disk_5       -        4099840  -        -        -       -

v  mvol         fsgen        ENABLED  4099840  -        ACTIVE   ATT1    -
pl mvol-01      mvol         ENABLED  4099840  -        ACTIVE   -       -
sd s_disk-01    mvol-01      ENABLED  4099840  0        -        -       -
pl mvol-02      mvol         ENABLED  4099840  -        TEMPRMSD ATT     -
sd p_disk-01    mvol-02      ENABLED  4099840  0        -        -       -



NOTE: "TEMPRMSD" status of mvol-02 states that mirror is in process of sync.

verify sync process from vxtask list
[root@lab1 ~]# vxtask list
TASKID  PTID TYPE/STATE    PCT   PROGRESS
   191     -     ATCOPY/R 23.33% 0/4099840/956416 PLXATT mvol mvol-02 mdg auto-throttled


vxprint output after sync is complete:
[root@lab1 ~]# vxprint -g mdg
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -
dm s_disk       disk_5       -        4099840  -        -        -       -

v  mvol         fsgen        ENABLED  4099840  -        ACTIVE   -       -
pl mvol-01      mvol         ENABLED  4099840  -        ACTIVE   -       -
sd s_disk-01    mvol-01      ENABLED  4099840  0        -        -       -
pl mvol-02      mvol         ENABLED  4099840  -        ACTIVE   -       -
sd p_disk-01    mvol-02      ENABLED  4099840  0        -        -       -



Removing Mirror

Decide which disk is to remain active - Let's say i want p_disk to remain in DG and remove s_disk (remember we created volume originally on s_disk and then add p_disk for mirror - so logically p_disk is a secondary copy which will be primary after removal of s_disk from DG)

1- Remove mirror copy on disk s_disk
vxassist -g mdg remove mirror mvol '!s_disk'

NOTE: '!s_disk'  --  single quotes have been used since any command starting with ! on linux sometimes refers to some shell keyword and consequently failing of the command.

Verify results from vxprint:
[root@lab1 ~]# vxprint -g mdg
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -
dm s_disk       disk_5       -        4099840  -        -        -       -

v  mvol         fsgen        ENABLED  4099840  -        ACTIVE   -       -
pl mvol-02      mvol         ENABLED  4099840  -        ACTIVE   -       -
sd p_disk-01    mvol-02      ENABLED  4099840  0        -        -       -


Note: "mvol" is left with just one copy on plex mvol-02 while mvol-01 is removed. although mirror is removed but disk s_disk is still part of DG "mdg".

2- Let's remove s_disk from DG as well.
vxdg -g mdg rmdisk s_disk

Verify results from vxprint:

[root@lab1 ~]# vxprint -g mdg
TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg mdg          mdg          -        -        -        -        -       -

dm p_disk       disk_4       -        4099840  -        -        -       -

v  mvol         fsgen        ENABLED  4099840  -        ACTIVE   -       -
pl mvol-02      mvol         ENABLED  4099840  -        ACTIVE   -       -
sd p_disk-01    mvol-02      ENABLED  4099840  0        -        -       -



Good Luck with VERITAS mirroring.

Saturday, December 14, 2013

Where did i go wrong!

Being in IT support business and especially data center support, life is always a rush. While on the way back to home, escaping from the same rush, and feeling bit hot, I just randomly started thinking about the cold days those we used to have round the old house "Angeethi" or furnace in December and January. What a life and peace experience that was.

In fact, now a days we experience cold only for two weeks or so if I compare it with the one in childhood. Suddenly my eyes got blinded with the light emerging from head lights of a fancy car driven by some young chap - lo and behold - suddenly my thoughts emerged like of a taste on tongue of a person experiencing extreme acidity and stomach disorder. In struggle to keep myself at peace, I just started reasoning, why this young chap needed these gloomy head lights for his car? The only reason came to my mind was upcoming fog days, perhaps. By the way, one can find people on road in summer hot days with more bright light than coming out of this car’s head lights.

Believe me it was a revelation telling me if I’ll use these head light for my car, those can make some other driver or passer by blind, I’ll NOT be blessed with fog and peace of childhood. It was the moment of realization, being able to afford 50k budget for my house electricity needs only, doesn't make me eligible to have it. In big canvas I am something odd and this odd outlook is what is forbidden for me (May be in Islam too).

May Allah Bless us all with wisdom to know the reality of these worldly materials and to use them for better.

Tuesday, October 29, 2013

What if i was given the chance to make “prime” decisions about Pakistan – Please not funny!


Don’t judge me – its just a list of things, as i think, can fix Pakistani problems and highlight our features as a nations. Here goes the list

>    Own the religion – by saying this i mean take ownership of every masjid and madrasa from “private” owners and make them “public”.
>    Hurting someone on basis of faith difference – make it a most harsh of crimes and punish it accordingly
>    Define criteria for a person to be speaker in mosque. Punish badly if happens contrary.
>    >Define a strict criteria on basis of education and research, both, specially research for a person to be a preacher (well this is most important of all).
>    Ban all gatherings on the basis of religions – annual gatherings (tableeghi jamat, dawat-e-Islamic, dawah etc). Gathering can be allowed after proper permission and a reason to gather like some procession etc.
>    Ban recitation of all the books like “fazail-e-amal”, “faizan-e-sunnat” etc. in gatherings and push the nation to read more from Quran.
>    Make financial figures of religious institutions public and accountable.
>    Make criteria for being “Molana”, “Hazrat” etc. right now it looks like we say in punjabi “anni riyooriyaaN wandh di paee ay” mean a blind woman is distributing sweets.


Well I'll add more to the list. Mind it – it is an opinion and wish and don’t be offended.

comments are welcome.

Sunday, September 29, 2013

Arranged Vs Love marriage



Arranged Vs Love marriage


I have been discussing this topic in my own teenage / adulthood and used to be very confused. Although there is not much to be confused about it but you know the teenage!. Most prominent feelings of those days used to be “what to do if I fall in love with someone?” Please don’t be judgmental as, it never happened for myself. As life is being squeezed with every mark of year and is evolved too – at last found the answer of few questions. So sharing those answers is agenda of this little writing and may this be a guide to the young ones (although it might not be the case).
I’ll not hook myself with this ongoing debate of
Ø  Being in love and then marriage OR
Ø  Being in love and be married with someone who is chosen by parents OR
Ø  Being in frame of reference where emotions do not matter and one binds himself or herself with the choice of parents OR anything that one can think of.  
One will have to give space and margin to the second party in order to make the relation a success; any relation from friendship to wife/husband. If we consider this a rule of thumb then look at the marriage choices above. The choice that gives maximum chance to this rule – can be a way forward.
Please don’t choose partner on the basis of material. “She is so hot” “damn he is so beautiful and rich” “she got the figures man” could all these typos be a reason/basis of a relation like marriage?
People please consider marriage a sacred relation and do not ruin it because of “fatal illness” called “jawani”. Why I’ll use “illness” for the part of life which is full of joy and energy? It’s because of surroundings and things those affects/directs our decisions and emotions.

Friday, August 16, 2013

Thinking rational and requesting pardon


This Friday on Jumma prayer, it happened – I concentrated the "dua" which Imam sb was requesting to Allah. It was all about our sins that we may have done due to which we are flooded every year. I really didn't find any objection within myself over this philosophy but I thought – our sins might not be the only reason for these earthly disasters. On a closer look, EU and US have these problems too. For instance, I thought of the Japan and its last disaster.
I think, it's our negligence and lack of interest to fix the issue that is playing. On a stronger note, it's our struggle to not to change and to resist every factor that tends to change ourselves. Even this attitude encompasses Godly hints that encourage us to look upon ourselves and make us understand the need to adapt.
Birth of every single child is a clear sign that Allah has accounted for the recent technology changes and social evolution, we are passing through. Children were not so "fast and furious" even a decade back. I am 36 and I see people above 50 years are quite afraid of these latest technology and gadgets, even if they want to learn it.

 

May Allah bless us with right words while praying!

Configure CFS cluster and CFS mount point


Summary:

This LAB was a hands-on for CFS implementation/configuration. CFS cluster will be configured and one mount point will be added.

Prerequisites:

Before you starting configuring VERITAS CFS cluster and start adding new CFS mount point for active-active disk usage; make sure you have:
  1. SF installed with right set of license keys
  2. You have configured VCS on all participant servers (in my case I have two servers guest1 and guest3 with RHEL 5)
  3. You have checked cluster status with "/opt/VRTSvcs/bin/hastatus –summary"
  4. Make sure you virtual IP is accessible
  5. Make sure you have disks presented on cluster participants/nodes. Storage is shared. Just for reference I used iSCSI storage.
  6. Take note of the disks those you have plans to configure in CFS cluster.
  7. Take note of the mount point and volume names.

Cluster Configuration

Following are the steps to configure CFS cluster on both LAB Servers (guest1 and guest3).
  1. Run "/opt/VRTSvxfs/cfs/bin/cfscluster status" to check if CFS is not already configured
    1. "[root@guest3 bin]# /opt/VRTSvxfs/cfs/bin/cfscluster status
    NODE CLUSTER MANAGER STATE CVM STATE
    guest1 running         not-running
    guest3 running         not-running

     
    Error: V-35-41: Cluster not configured for data sharing application
  2. Check cluster status by running "/opt/VRTSvcs/bin/hastatus -summary" and make sure cluster nodes are online.
    1. /opt/VRTSvcs/bin/hastatus –summary
      -- SYSTEM STATE
      -- System State Frozen

       

      A guest1 RUNNING 0
      A guest3 RUNNING 0

       

      -- GROUP STATE
      -- Group System Probed AutoDisabled State

       

      B ClusterService guest1 Y N ONLINE
      B ClusterService guest3 Y N OFFLINE

 

  1. Run "/opt/VRTSvxfs/cfs/bin/cfscluster config" to configure the CFS cluster services (cluster VERITAS volume manager)
    1. Let the configuration complete
  2. Check the CFS cluster services status with "/opt/VRTSvxfs/cfs/bin/cfscluster status"

     

    [root@guest3 bin]# /opt/VRTSvxfs/cfs/bin/cfscluster status


     

    Node         : guest1
    Cluster Manager     : running
    CVM state         : running
    No mount point registered with cluster configuration

     


     

    Node         : guest3
    Cluster Manager     : running
    CVM state         : running
    No mount point registered with cluster configuration
  3. Check which node is master with "vxdctl –c mode"
    [root@guest3 bin]# vxdctl -c mode
    mode: enabled: cluster active - SLAVE
    master: guest1

     

    In my case I am shifting my console to guest1 and will be adding new disks and mount points from there.
    [root@guest1 bin]# vxdctl -c mode
    mode: enabled: cluster active - MASTER
    master: guest1
  4. Check the available disks with "vxdisk list"
  5. Initialize the disk with "/opt/VRTS/bin/vxdisksetup –i disk_2" #in my case its disk_2 that initialize. It could be different from system to system on the bases of SAN.
  6. Verify that disk is initialized with "vxdisk list" – here is expected outcome "disk_2 auto:cdsdisk - - online"
  7. Add new disk group with "vxdg –s init cfsdg disk01=disk_2". Here cfsdg is the name of new disk group with disk_2 added as disk01 and –s is used to make it a shared DG.
  8. Verify the disk group with "vxdg list cfsdg"
  9. Verify the same from "vxprint –hrt output".
    [root@guest1 bin]# vxprint -hrt

    Disk group: cfsdg

     

    DG NAME NCONFIG NLOG MINORS GROUP-ID
    ST NAME STATE DM_CNT SPARE_CNT APPVOL_CNT
    DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE
    RV NAME RLINK_CNT KSTATE STATE PRIMARY DATAVOLS SRL
    RL NAME RVG KSTATE STATE REM_HOST REM_DG REM_RLNK
    CO NAME CACHEVOL KSTATE STATE
    VT NAME RVG KSTATE STATE NVOLUME
    V NAME RVG/VSET/CO KSTATE STATE LENGTH READPOL PREFPLEX UTYPE
    PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE
    SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE
    SV NAME PLEX VOLNAME NVOLLAYR LENGTH [COL/]OFF AM/NM MODE
    SC NAME PLEX CACHE DISKOFFS LENGTH [COL/]OFF DEVICE MODE
    DC NAME PARENTVOL LOGVOL
    SP NAME SNAPVOL DCO
    EX NAME ASSOC VC PERMS MODE STATE
    SR NAME KSTATE

     

    dg cfsdg default default 9000 1376650536.16.guest1

     

    dm disk01 disk_2 auto 65536 2017024 -

    Note:
    Veritas volume manager reports available disk space in 512 byte blocks. There we have 2017024 blocks which calculates to about 985MB of space. #Hope math is easy J
  10. Create volume using "vxassist -g cfsdg make cfsvol 984M" and verify volume creation from "vxprint –hrt". Check for the line
    "sd disk01-01 cfsvol-01 disk01 0 2015232 0 disk_2 ENA"
  11. Create file system on new volume using
    "mkfs -t vxfs /dev/vx/rdsk/cfsdg/cfsvol" make sure you use right FStype switch and it varies across UNIX platforms
  12. Make new shared DG part of CFS using
    "/opt/VRTS/bin/cfsdgadm add cfsdg all=sw"
    Disk Group is being added to cluster configuration...
  13. Verify the above with
    [root@guest1 bin]# /opt/VRTS/bin/cfsdgadm display cfsdg

    NODE NAME ACTIVATION MODE
    guest1 sw
    guest3 sw
  14. Next is to add this volumes/filesystems to the cluster configuration so they can be mounted on any or all nodes. Mount points will be automatically created
    [root@guest1 bin]# /opt/VRTS/bin/cfsmntadm add cfsdg cfsvol /cfs all=cluster

    Mount Point is being added...
    /cfs added to the cluster-configuration
  15. Verify the newly added mount point with
    [root@guest1 bin]# /opt/VRTS/bin/cfscluster status


     

    Node : guest1
    Cluster Manager     : running
    CVM state         : running
    MOUNT POINT SHARED VOLUME DISK GROUP STATUS
    /cfs cfsvol cfsdg NOT MOUNTED

     


     

    Node : guest3
    Cluster Manager     : running
    CVM state         : running
    MOUNT POINT SHARED VOLUME DISK GROUP STATUS

    /cfs cfsvol cfsdg NOT MOUNTED
  16. Mount newly added mount point on both cluster nodes using
    [root@guest1 bin]# /opt/VRTS/bin/cfsmount all

    Mounting...
    [/dev/vx/dsk/cfsdg/cfsvol] mounted successfully at /cfs on guest1
    Mounting...
    [/dev/vx/dsk/cfsdg/cfsvol] mounted successfully at /cfs on guest3
  17. Check cfscluster status
    [root@guest1 bin]# /opt/VRTS/bin/cfscluster status

     

    Node : guest1
    Cluster Manager : running
    CVM state : running
    MOUNT POINT SHARED VOLUME DISK GROUP STATUS

    /cfs cfsvol cfsdg MOUNTED


     


     

    Node : guest3
    Cluster Manager : running
    CVM state : running
    MOUNT POINT SHARED VOLUME DISK GROUP STATUS

    /cfs cfsvol cfsdg MOUNTED
  18. Verify local mounts as
    #df –h
    /dev/vx/dsk/cfsdg/cfsvol
    984M 36M 890M 4% /cfs

     


     

    Congratulations! CFS cluster and CFS file system is configured and ready to for Active-Active usage (on both nodes in my case).

Un-configure CFS cluster and mount point

Un-configure CFS cluster and mount point

Summary

I have two hosts
Ø  Guest1
Ø  Guest3
Configured in VCS and CFS. There is one mount point /cfs configured in cfs cluster “cfs_cluster”. My ./cfscluster status output goest here:
[root@guest1 ~]# /opt/VRTS/bin/cfscluster status
  Node                      :  guest1
  Cluster Manager  :  running
  CVM state             :  running
  MOUNT POINT    SHARED VOLUME                  DISK GROUP        STATUS
  /cfs                        cfsvol                                      cfsdg                      MOUNTED      
  Node                      :  guest3
  Cluster Manager  :  running
  CVM state             :  running
  MOUNT POINT      SHARED VOLUME                 DISK GROUP        STATUS
  /cfs                        cfsvol                                       cfsdg                      MOUNTED

Steps

1-     Find master node in cluster – run following command
a.     Vxdctl –c mode
2-     Check if cfs mount point is visible in current mounted volumes
a.     #df –h
3-     Check cluster status by running
a.     /opt/VRTSvcs/bin/hastatus -sum

-- SYSTEM STATE
-- System               State                Frozen             

A  guest1               RUNNING              0                   
A  guest3               RUNNING              0                   

-- GROUP STATE
-- Group           System               Probed     AutoDisabled    State         

B  ClusterService  guest1               Y          N               ONLINE        
B  ClusterService  guest3               Y          N               OFFLINE       
4-     Check CFS cluster status.
a.     /opt/VRTS/bin/cfscluster status #Output is already shared in summary
5-     Check current disk and DG configuration by running
a.     #vxdisk list
b.     #vxprint –hrt
6-     Umount the CFS volume
a.     /opt/VRTSvxfs/cfs/bin/cfsumount /cfs
Unmounting...
  /cfs got successfully unmounted from guest1
  /cfs got successfully unmounted from guest3       
7-     Delete the mount point from CFS cluster configuration
a.     /opt/VRTS/bin/cfsmntadm delete /cfs
   Mount Point is being removed...
  /cfs deleted successfully from cluster-configuration
8-     Un-configure the CFS cluster
a.     ./cfscluster unconfig
  Unconfiguring cluster setup between nodes: [guest1guest3]
VCS WARNING V-16-1-50035 No Group dependencies are configured
  Vxfsckd removed from cluster configuration
  Cluster Mount resource definition removed from cluster configuration
  Vxfsckd resource definition removed from cluster configuration

 
Deleting the cvm configuration.

  CVM configuration deleted.
  cfscluster: Cluster unconfigured successfully
9-     Check CFS cluster status
a.     [root@guest1 bin]# ./cfscluster status
  NODE         CLUSTER MANAGER STATE            CVM STATE
  guest1          running                                            not-running                   
  guest3          running                                            not-running                   

  Error: V-35-41: Cluster not configured for data sharing application
10-   Check VCS status as:
a.     /opt/VRTSvcs/bin/hastatus -sum

-- SYSTEM STATE
-- System               State                Frozen             
-------------              -------------        -----------
A  guest1               RUNNING              0                   
A  guest3               RUNNING              0                   

-- GROUP STATE
-- Group           System               Probed     AutoDisabled    State         

B  ClusterService  guest1               Y          N               ONLINE        
B  ClusterService  guest3               Y          N               OFFLINE  

Friday, June 28, 2013

ISCSI Initiator configuration on HPUX

Any initiator configuration has following steps to be performed in order, for the initiator, to login onto the target so that one could present storage over ISCSI.

1-    Install the initiator
2-    Configure it to login onto the target



================    1    ==================

As first case, i'll install initiator on HPUX server (in my case its HPUX v2).

i.     Download the initiator software from HP's site.
       http://www.hp.com/products1/serverconnectivity/storagesnf2/iSCSI_sw_ini.html

       One should have login on HP's site. Initiator software is free to download and no license is
        required.
ii.    Downloaded file will be with .depot extension. Run software installation like follow:
       #swinstall -s /path_to_depot/*ISCSI*.depot
       Compelet the installation.
       You will find software binaries in /opt/iscsi and startup in /sbin/init.d/iscsi


================    2    ==================

Configuration consists of following steps.

i.    Change / Display the iscsi initiator name if you want to, using following commands:
      #/opt/iscsi/bin/iscsiutil -l  ---- Command will show current iscsi initiator name and other settings.
      #/opt/iscsi/bin/iscsiutil -i -N new_name_in_inq_format
ii.   Now add your iscsi target using the following command
      #/opt/iscsi/bin/iscsiutil -a -I IP_of_iscsi_target
iii.  Then run /sbin/init.d/iscsi start  --- and check iscsi target server if your initiator name is listed
       there. Now  you can present the disk/disks and can verify with #ioscan -fnC disk; insf -eC disk; 
       ioscan -funC disk. Your new disks should be visible on initiator name by now. Good Luck!

Wednesday, June 26, 2013

Linux 6 HA setup with Oracle

Note: 1) Blog is intended for people with good knowledge of Linux as OS and shell as a tool.
          2) Steps are extracted from RHEL 6.x HA implementation
Like every HA/clustering technology, making any service (DB,NFS,web server or any custom script) is accomplished by going through
1-     Configuring two servers in cluster / Preparing the machine/servers to look for each other
2-     Configuring the required service to fail over in event of some hardware/network failure.

####################      1      #####################
For Linux, list of per-requisites is given as:
i.          Backup existing /etc/yum.repos.d/rhel-source.repo file, and edit this file as shown below.
[rhel-local-base] 
gpgcheck=1 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD
baseurl=file:///mnt 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-local-HA] 
gpgcheck=1 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD
baseurl=file:///mnt/HighAvailability 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-local] 
gpgcheck=1 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD
baseurl=file:///mnt/LoadBalancer 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-local-RS] 
gpgcheck=1 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD
baseurl=file:///mnt/ResilientStorage 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-local-SF] 
gpgcheck=1 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD
baseurl=file:///mnt/ScalableFileSystem 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-local-Server] 
gpgcheck=1 
name=Red Hat Enterprise Linux $releasever - $basearch - DVD
baseurl=file:///mnt/Server 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  

and run
       
rpm –import <location_on_DVD>/RPM-GPG-KEY-redhat-release 

  
I assumed that you have DVD (Linux 6x in my case) in DVD drive.

  ii-       Install following software
    a.    cman
    b.    rmanager
    c.    luci
    d.    ricci
    e.    GFS
    f.    clvmd


OR

Alternatively you can use

#yum groupinstall "HighAvailability"
#yum groupinstall "LoadBalancer"
#yum groupinstall "ResilientStorage"
#yum groupinstall "ScalableFileSystem"

Remember to restart yum after adding above repos.

iii-    you must have 5 IPs and 4 NIC interfaces available for the systems.

iv-    Next is to configure services
       a) disable and turn off iptables with #chkconfig iptables off and #service iptables stop
       b) disable and turn off selinux with #chkconfig selinux off and #service selinux stop
       c) enable and run luci with #chkconfig luci on and #service luci start
       d) enable and run ricci with #chkconfig ricci on and #service ricci start
       e) enable and run rmanager with #chkconfig rmanager on and #service rmanager start
       f) enable and run clvmd with #chkconfig clvmd on and #service clvmd start

Note: After luci is started, it should be accessible with https://hostname_or_IP:8084. Sample is given as:


v-    Reset luci's password - in case!

vi-    Next step is create fence - in my case i have used HP's iLO as a fence. following url can help you configure the fence.
http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&dlc=en&docname=c03138211

Use luci's GUI to create fence rather editing cluster configuration as presented in HP's link.

vii-    System's /etc/hosts should look like below and NICs on both hosts should be configured accordingly.
                   
192.168.0.1   labnode1
192.168.0.2   labnode2
192.168.0.3   service_VIP
192.168.0.4   labnode1_hb
192.168.0.5   labnode2_hb


viii-    Run and configure cman for start as
            #chkconfig cman on; service cman start

after this onward, both systems are ready to be configured/bundled in a cluster - you name it.

ix-    login luci and add nodes and then create cluster
on shell #clustat command can acknowledge the cluster status. systems are ready to be configured to run your service (in this case Oracle) in HA configuration.

Note: when adding nodes in luci, use labnode1_hb and labnode2_hb as your cluster node names.  
        You put heartbeat link node name. This is how REHL HA uses heartbeat link to check each 
        other’s health, therefore determine whether fencing each other in case of the other node 
        fails to responds



################    2     #################

For any service to be configured in cluster with HA/LB functionality, one should understand / have the followings:

    a.    Virtual IP / Virtual host name for service
    b.    Some shared storage with clvmd or GFS
    c.    Way to start the application - could be some predefined template in cluster tool or your
           customer script
    d.    Way to stop the application - could be some predefined template in cluster tool or your
           customer script
    e.    How and what you want to monitor for service fail-over

in my case, VIP/Virtual_hostname is already configured in /etc/hosts. i have /u01 and /u02 as a choice for shared storage, i'll be using predefined Oracle option in luci to create HA instance of oracle with listener. Monitoring and start/stop will be handled by the same.

In Linux a service that is going to be configured is on top of a cluster and fail-over domain. service is called a "service group" and above mentioned things are called service group "resources". From one tool to the other, you may find different names. For example in service guard, a service group is called a package and all the resources are pre-reqs to build a package. in VERITAS SF, name differs slightly - but concept remains the same. i.e.

you should have one cluster - then one fail-over domain (not present in HP or VERITAS etc.) then a service group running on top of that fail-over domain with certain resources (IP, shared storage, start/stop scripts and monitoring).
With sufficient knowledge you can translate above in HP's, SUN's (now oracle) or VERITAS version.

Lets configure oracle as HA service in Redhat cluster services; configured above.

i-    Verify you have your /etc/hosts has VIP entry (already done when configuring NIC interfaces.)
ii-   Three slices have been presented to both the servers. Two disks are shared for DB data and
       quorum disk and one for oracle binary installation. you may put oracle binaries on some shared
       storage to avoid installation on secondary nodes but you 'll have configure oracle user and home
       directories accordingly.

Create storage as:



1.     # pvcreate /dev/mapper/dm-1
2.     # vgcreate -cy vgdata/dev/mapper/dm-1
3.     # lvcreate -L 10G -n lvdata vgdata
4.     # mkfs.ext4 /dev/vgdata/lvdata
5.     # vgchange -an vgdata 
6.     # pvcreate /dev/mapper/dm-2 
7.     # vgcreate  vgapp/dev/mapper/dm-2 #Note for local -cy is missing
8.     # lvcreate -L 10G -n lvapp vgapp 
9.     # mkfs.ext4 /dev/vgapp/lvapp
10.  # vgchange -an vgapp 
11.   # pvcreate /dev/mapper/dm-3
12.  # vgcreate -cy vgqrm/dev/mapper/dm-3 
13.  # lvcreate -L 2G -n lvqrm vgqrm
14.   # mkfs.ext4 /dev/vgqrm/lvqrm
      15.  # vgchange -an vgqrm



         Create mount points on root as #mkdir /u02
iii-    Access luci GUI add a failover domain - in my case its OracleHA. Failover domain is may not
         be prioritized or restricted.  
iv-    Access the resources tab in luci and starting adding resources:  
         a).   Add IP resources (service IP; the same IP that was given in /etc/hosts as VIP); in my case it
         is 192.168.0.3
         b). Add LVM HA resource. Provide resource name, and quorum disk VG name vgqrm and LV 
              name as lvqrm.
         c). Add filesystem resource. Provide resource name (database in my case), mount point (/02), 
              filesystem (ext4 in my case), LV path (/dev/vgdata/lvdata in my case) 
Note: While adding resources, keep "child resource" option in perspective. It defines order and precedence of resources added.

At this point your can submit the configuration and try starting service on either nodes. You should have VIP and /u02 available. you can check service fail-over as well.



v-    Install oracle on both nodes (on /u01 which is a local non-shared mount point). At this point,
        probably, you need to handover servers to some oracle guy to go through the OS configuration
        related to Oracle and Oracle installation.
vi-   Add Oracle resource. provide resource name and other oracle details like ORACLE_HOME and
       ORACLE_SID etc.
vii-  Add Oracle listener resource.
viii- At this point you should be able to run oracle instance on both nodes using luci GUI. If service is
       failed, refer to the cluster log files and Linux messages to know whats actually going on. Use
       clustat to verify the status of cluster and the service.