Sunday, October 3, 2021

Azs-Azure-LocalPC

It is easy to setup connectivity to AWS-Azure-LocalPC

Create site to site VPN between Azure VNET and AWS VPC

Setup SSL VPN from Azure VNET to local PC.

Now Local PC can connect to both Azure VMs, AWS VMs over private IP addresses.




Saturday, May 23, 2020

My Continuous Journey to become an Yogi

( I will keep on editing this page adding with my new experiences with Yoga)

What I understood about Yoga as of now:
Yoga is a path for self realization. The self is a witness to your deeds. It always monitor you. To realize the self you need to calm down your chitta (Mind). The mind is occupied with lot of whirlpool of thoughts. Once those thoughts are reduced, one will get chance to realize his self.

What is the path to realize the self ?:

As of now I am thinking that Patanjali Ashtanga Yoga Path "Yama Niayma Aasana Praanayama Pratyahara Dharana Dhyana Samadhi" will help for self realization. Now I am practicing this path with the help of Videos and books related to Patanjali Ashtanga Yoga.

How I started showing interest on Yoga ?
India, the country I born is a birthplace for many Yogis. One can find an yogi for every 5 villages in this country.
In childhood I studied book about Sri Pothuluri Veera Brahmendra Swamy. In that book there were soma Aasanas. I tried to practice them few times in my childhood.
I used to worship him, but was not practicing Yoga-aasanas daily.
In 2002-2003 times I visted Guru Viswaspoorthi and understood about Pranayama. But did not practice daily.

From 2013 I seriously started exploring Yoga.

My Yoga Journey So Far from 2013:

I first started practicing yoga aasanas (Surya Namaskaras followed by Sirsha-Aasana etc..) by following the book "Yoga for Health & Personality" by G.Francis XaVier (available in Amazon now https://tinyurl.com/qr484vq). I purchased this book in a book store in MGBS-Hyderabad sometime in between March 2013 -May 2013.

My initial practice was 2 to 5 sets of surya namaskaras followed by Srisha Aasana practice with wall support and end with Sava Aasana.

With a practice of 3 to 4 days a week, after a couple of months I managed to do Srisha-Aasana(Head Stand) without wall support. It was a big achievement for me.

One day in 2014 I got back pain with a sudden awkward movement. With the help of Sirsha-Aasana I managed to heal it by meself.

Until 2015 my yoga practice was not very regular.Thanks to 24/7 support model rotational shifts. I used to skip it for some days, and re-start again after some self-motivation.

In March 2015, with god grace I switched my job and relocated to Bangalore for 9AM to 6 PM timings profile. I rented house in a walk-able distance to office. It helped me to save lot of time. With plenty of time in hand, I improved my aasana practice time by topping up few more aasanas (Sarvanga Aasana, Matsya Aasana, Hala Aasana, Chakra Aasana, Yoga-Mudra Aasana, Bhadra Aadana, Ardha Matsyendra Aasana, Paschimottana Aasana, Sava Aasana) gradually.

From May 2016 I got an opportunity to live alone for more than one year almost (Thanks to my wife for going to her home town to take her mother support during pregnancy time).

This was really golden opportunity for me to explore more on Yoga. One day I found details about a great yoga guru Sri T.Krishnamacharya(https://tinyurl.com/wpdem3h) and his book Yoga-Makaranda (https://tinyurl.com/tv53fet) in internet.

He contributed for the revival of Hath-Yoga with Vinyasa-Krama Yoga aasana practice. Reputed yoga teachers like Sri Pattabhi Jois and BKS Iyyengar are his successors.

With the help of below resources available in Internet, I started learning Vinyaya-Krama-Yoga.

Yoga Mala book and videos by Sri Pattabhi Jois
Sri BKS Iyyengar youtube videos
Yoga practice manuals from https://www.ashtangayoga.info/
Half Primary Series youtube video by Purple Yoga Center -Goa

With God grace, I am regularly practicing it.

My current practice is as follows:

Evening 7PM to 8:15 PM Yoga-Aasana Practice
Morning 15 minutes to 30 minutes Pranayama Practice

Apart from this I dedicate 30 to 45 minutes in morning for some work-outs.





Wednesday, December 17, 2014

Calculating IOPS for a given HDD

Hard Disk Drives:

Hard disk drive will have movable mechanical components in the form of platters, spindle, Read/Write Heads and Actuator Arm.
The Arm will move the read write heads in the radial movement against the platter to read or write data in the form of magnetic bits.

HDD Performance:

HDD performance is based on Seek Time (T), Rotational Latency (L) and Internal data transfer time (X) Disk Service Time Ts = T+L+X.
Disk service time is also the time taken by the disk to server an I/O for a given block size.

Seek Time, Rotational Latency and internal data transfer rate are provided by HDD Manufacturer.

For instance take Seagate Cheetah 10K.6 FC Drive (ST3146807FC). The manufacturer provided below specifications.

Average Internal data transfer rate buffer to/from disc media: 66 Mbytes/Second
Disc Rotation Speed: 10,008 RPM
Average Seek Time: 5.2 ms

Now let us calculate Disk Service Time, IOPS.


Rotational Latency (L) : 2.99 ms
The Rotational Latency is nothing but time taken for single rotation.
It can be calculated using given Disc Rotation Speed. Given speed is 10008 RPM. Per second it will come 166.8 RPS.
Because actuator arm occupies only half of the platter, we need to take half of the rotational speed only to calculate Rotational Latency.
Thus rotational latency will be 0.5/166.8 = 2.99 ms.


Seek Time (T) : 5.2 ms
Is the time it takes to place the read/write head on the target sector.

Internal data transfer time (X): 0.9 ms
Is the time read/write head takes to do read/write operation on the located sector.
Now let us calculate the internal data transfer time it takes for an I/O size of 64 KB.
As per vendor specifications, the internal transfer rate is 66 MB/s, so now the time taken by read/write head to do an I/O operation for 64 KB size IO is: 64 KB/66MBps= 0.9 ms
So in 0.9 ms it can read/write 64 KB from/to the disc.

Now the total time taken by disc to read/write an IO (with 64 KB Block size) is Ts= 5.2+2.99+0.9 = 9.09 ms

So finally the disc needs 9.09 ms to read/write an IO from/to buffer.

If it can do single I/O operation in 9.09 ms, how many I/O operations can do in a second ?
IOPS = 1/Ts = 1/9.09*10^-3 = 110

Now we know the disk service time (Ts) and IOPS the disk can give. But what will be application response time (R) for an IO.

The IO response time for an application depends up on Disk Service Time (Ts) and the controller Utilization.

R = Ts/(1-U)

If the controller utilization is more i.e if it reaches 100% the response time will be infinite.
If the controller is lower utilized the IOPS of the disk will be reduced.
To calculate application storage requirement, both capacity and performance need to be considered.

The number of disks required for an application will be calculated using below formula.

Dr = Max (Dc, Di)
Dr = the number of disks required
Dc= the number of disks required to meet the capacity
Di= the number of disks required to meet the application IOPS.


Micro-Kernalized vs Monolithic Design



The below images depicts the design differences between Microsoft Hyper-V and VMware ESXi
 



Tuesday, March 12, 2013

ISM 10-001 Practice Questions

Description: Posting answers to practice questions of EMC ISM V2 book.

Question:1 An application specifies a requirement of 200 GB to host a database and other files. It also specifies that the storage environment should support 5,000 IOPS during its peak workloads. The disks available for configuration provide 66 GB of usable capacity, and the manufacturer specifies that they can support a maximum of 140 IOPS. The application is response time sensitive  and disk utilization beyond 60 percent does not meet the response time requirements. Compute and explain the theoretical basis for the minimum number of disks that should be configured to meet the requirements of the application

Answer The following details can be obtained from the given question.

1) Application requires 200 GB storage capacity.
2) At its peak load, the application can generate 5000 IOPS
3) The available disks capacity is 66 GB
4) The disks can support 140 IOPS as per manufacturer


We need to plan a work around to meet application capacity requirement, its IOPS requirement, and also the application should get good IO response.

To meet application storage capacity 200 GB, we can use 4*66 GB Hard drives which can give 264 GB usable capacity.

But 4 disks can give 560 (4*140) IOPS only.

The application generates 5000 IOPS, to meet this we need 36 (5000 (required IOPS)/140 (disk IOPS)) disks.

But application is response time sensitive, and the given 140 IOPS per disk is at 100% Utilization.

If the disk are 100% utilized the response time will be low, and application response time will be good at 60% of disk utilization only.

So Disk IOPS at 60% utilization will be 60% of 140 = 84 IOPS.

To meet 5000 IOPS of application we need 60 (5000 (required IOPS)/84 (disk IOPS)) disks. (rounded to nearest value)

To get required disk to meet application storage capacity of 200 GB and 5000 IOPS we need to use maximum of (Dc, Di) formula.

Dc = Disk capacity
Di = Disk IOPS

Dc = 4 disks
Di = 60 disks

Maximum(Dc, Di) = Maximum(4, 60) = 60

From the above analysis it is arrived that we need 60 disk to meet the application requirement in terms of its capacity, IOPS & response time.

Question:2 Which components constitute the disk service time? Which component contributes the largest percentage of the disk service time in a random I/O operation?
Answer Disk Service time (Ts) can be calculated using its Rotational Latency (L), Average Seek Time (T) and Internal Data Transfer Time (X).

i.e Ts = L + T + X

Hence the components of Disk Service Time are Disk Rotational Latency, Average Seek Time and Internal Data Transfer Time.

In random I/O operation seek time will be high, as the R/W head to seek different sectors on different tracks on the platter to read/write an I/O to/from disk.

So Seek Time contributes largest percentage of the disk service time in a random I/O operation.

Question:3 The average I/O size of an application is 64 KB. The following specifications are available from the disk manufacturer: average seek time = 5 ms, 7,200 RPM, and transfer rate = 40 MB/s. Determine the maximum IOPS that could be performed with this disk for the application. Using this case as an example, explain the relationship between disk utilization and IOPS.

Answer The below details are given in the question.

I/O Size = 64 KB
Average Seek Time (T) = 5 ms
RPM = 7,200 RPM.
Disk Transfer Rate = 40 MB/s

RPS = 7200/60 = 120.
Average Rotational Latency (L) = 0.5/120 = 4.16 ms

Internal Transfer Rate (X) for the given I/O size 64 KB is 64/(40*1024) = 64/40960 = 0.00156 seconds = 1.56 ms

So it needs 1.56 ms to transfer 64 KB size IO.

To calculate IOPS, we need to calculate Disk Service Time (Ts)

Ts = T+L+X = 5 ms + 4.16 ms + 1.56 ms = 10.72 ms

So the disk service time to server an IO with 64 KB size is 10.72 ms.

If it can server 64 KB IO in 10.72 ms, how many 64 KB IOs it can process per second ?

The answer is: IOPS =  1/Ts = 1/10.72 ms = 1000/10.72 s = 93.28 Seconds.

So the disk can serve 93.28 "64 KB" IO Operations per second at 100% disk/controller utilization.

If the disk is at 100% utilization the response time for application will become low.

The response time, disk utilization & Disk service time will have the below relation.

Average Response Time (Tr) = Disk Service Time (Ts)/(1-Utilization)

Tr = Ts/1-U

If the disk utilized at 60%, the average response time will be

Tr = 10.72 ms/1-60% = 10.72 ms/1-0.06 = 10.72 ms/0.94 = 11.4 ms

So average response time at 60% disk utilization is 11.4 ms.

If the disk is 100% utilized the response time will be infinite, and the I/O need to wait in the queue for infinite time. It is explained below.

Tr = 10.72 ms/1-100% = 10.72 ms/1-1 = 10.72 ms/0 = infinite

Below graph represents the relationship between Response Time (Tr) and Utilization (U)




Question:4 From the above question based on the calculated Disk Service Time (Ts) plot a graph showing response time versus utilization, considering the utilization of I/O controller at 20%, 40%, 60%, 80% and 100%. Describe the conclusion that could be derived from the graph. 

Answer Before plotting graph, let us derive Response time values using the Disk Service Time (Ts) derived from Question 3 at 20%, 40%, 60%, 80% and 100% utilization of I/O controller.

Response Time (Tr) at 20% I/O controller utilization: Ts/(1-u) = 10.72 ms/(1-0.2) = 10.72/0.8 = 13.4 ms


Similarly, at 40% Tr = 17.87
at 60% Tr = 26.8
at 80% Tr = 53.6
at 99% Tr = 1072 ms
at 100% Tr = 10.72/0 = Infinite.


Now let us plot a graph using the above values between Response Time and Utilization.



Since at 100% utilization the response time is infinite, we have used 99% utilization in the graph.

The conclusion we can derive from the above graph is, if more the IO Controller utilization is more the response time.

If more the response time, the respective application performance will be drastically decreased.

We need to make sure I/O Controller is less utilized to get better I/O response time for application.

Question:5 An application has 1,000 heavy users at a peak of 2 IOPS each and 2,000 typical users at a peak of 1 IOPS each. It is estimated that the application also experiences an overhead of 20 percent for other workloads. The read/write ratio for the application is 2:1. Calculate RAID corrected IOPS for RAID 1/0, RAID 5, and RAID 6.

Answer First let us calculate total IOPS the application generates.

1) It has 1000 users who generates 2 IOPS each so total will be 2000 IOPS
2) It has 2000 users who generates 1 IOPS each so total will be 2000 IOPS
3) Total IOPS the application generates are (from 1 & 2) 4000 IOPS
3) Since the application also has an overhead of 20 percent of other work loads the total IOPS it generates will be 120% of 4000 IOPS i.e 4800 IOPS

So the total IOPS the application generates are 4800 IOPS

In these read/write ratio is 2:1 which will give 3200 Read IOPS and 1600 write IOPS.

Now to calculate RAID Corrected IOPS we need to multiply write IOPS with corresponding RAID write penalty value.

Write penalty for RAID 1/0 is 2, for RAID 5 is 4 and for RAID 6 it is 6.

So, the RAID corrected IOPS for different RAIDs to meet application generated IOPS are as below.

RAID 1/0 IOPS = 3200 Read IOPS + 2(1600 Write IOPS) = 3200+3200 = 6400 IOPS
RAID 5 IOPS = 3200 Read IOPS + 4(1600 Write IOPS) = 3200+6400 = 9600 IOPS
RAID 6 IOPS = 3200 Read IOPS + 6(1600 Write IOPS) = 3200+9600 = 12800 IOPS


Question:6 For Question 5, compute the number of drives required to support the application in different RAID environments if 10 K RPM drives with a rating of 130 IOPS per drive were used.

Answer We have RAID corrected IOPS to meet application generated IOPS at different RAID levels in the above answer.

In the question it is given that each HDD can serve 130 IOPS. For different RAIDs the number of required disks will be calculated as below.

RAID 1/0 IOPS is 6400, so total HDDs we need will be 6400/130 = 49.2 = 50 (rounding to nearest)
RAID 5 IOPS is 9600, so total HDDs we need will be 9600/130 =  73.8 = 74 (rounding to nearest)
RAID 6 IOPS is 12800, so total HDDs we need will be 12800/130 =  98.4 = 99 (rounding to nearest)





















Thursday, February 28, 2013

Technical Diary 28-Feb-2013

Scenario:

I to listen MP3 songs, which I have stored in my Sony 16 GB Pen Drive. I have lot of albums stored in my pen drive which I have organized in respective folders for each album. I have almost 500 Albums stored in 500 folders. But the Player in my LCD TV is not advanced and it can't detect the mp3 files until I browse the album folder. I did not find an option to play all songs of all albums. So I have decided to move files from each album folder to single folder.

Challenge: 

In this case I have to open each folder copy the file content and paste them in the single target folder. I have to do this task almost 500 times, to copy file content from these 500 folders.

Solution: 

 I have used dos command "copy \*\*.* \"

Result: 

It saved me lot of time and got good satisfaction as I only discovered this command :)

Saturday, January 26, 2013

Technical Diary 25-Jan-2013


Deployment Image Servicing and Management tool
Version: 6.1.7600.16385 (Win 2008 R2)
Version: 6.2.9200.16384 ( Win 2012)
Description:  DISM enumerates, installs, uninstalls, configures, and updates features and packages in Windows images. 

  • to get details of WIM and VHD images
  • we can list, disable, enable windows features in the running operating system using DISM /Online
Appliance: Today I used this tool to add features Dot Net Framework2.x and Windows Power-shell in Windows 2008 R2 Core Server. The output is as follows.
C:\Windows\Logs>DISM /online /Enable-Feature /FeatureName:NetFx2-ServerCore

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7600.16385

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.

C:\Windows\Logs>DISM /online /Enable-Feature /FeatureName:MicrosoftWindowsPowerS
hell

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7600.16385

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.

Get-Hotfix Cmdlet: Used Get-Hotfix cmdlet to query KB 982293 is installed or not using 
get-hotfix | where {$_.HotfixID -eq "KB982293"}



==================================END=======================================