Skip to main content

SAN Zoning in a Fancy Way

SAN Configuration is a time-consuming job.

SAN zone configuration for one server lasted 1 hour or so. Now I will show you how it takes approximately 2 minutes including connecting :)

I used FOS CLI and excel to create SAN zoning configuration scripts. I strongly recommend, instead of using the excel directly on your production environment, first test it in another environment. Since excel produces every SAN zoning possibilities, rule count can cause performance issues. In my production environment 3000 zone configurations are working perfectly well, but I didn't test in over 3000 zone configurations.

Now, let's focus on the excel! You can download generalized excel from here

You can see every SAN Switch and Storage combination has a tab at the bottom.


There are 4 things to focus on, first one is the static data needed one time! This data is written in RED



Please write down the aliases of Storage WWPN aliases (since tabs differ with storage data) and SAN Switch name (again tabs differ with SAN switches) in every tab.

The second point to focus on is naming standards. Please reshape the calculated fields according to your naming standard IN EVERY TAB. This data is written in RED BACKGROUND


The third one is connection variables - WWPN's and Asset Name (Most probably server name) which are written in YELLOW BACKGROUND. Change this information JUST IN THE FIRST TAB. You should fill these fields every time you need a SAN Zoning configuration.



Now you can finish everything in seconds. Just copy the GREEN BACKGROUNDed cells and paste them in the FOS CLI! That's all.

Have fun with your newly saved 1 person/hours per zoning (It's 10 person/days per year for me)






Comments

Popular posts from this blog

Network Scan via DHCP scopes

Hi, this post is about checking network reachability using DHCP scopes and ping. Despite network monitoring tools monitor all network, using DHCP scopes might be a useful technique for crosscheck. In order to do that, we can get scopes and find scope option with 003 ID (Router) $scopes = Get-DhcpServerv4Scope You can get scope router like this $scopeRouter = $scope | Get-DhcpServerv4Optionvalue -Optionid 003 -ErrorAction SilentlyContinue And you can acquire the result like $result = Test-NetConnection $( $scopeRouter .Value) You can find the script on GitHub https://github.com/ertugrulblt/PublicRepo/blob/master/Scan-ScopesReachability.ps1

First things first - Visual Studio Code and github integration

In this post, I want to show how to install the Visual Studio Code and show GitHub repositories. First download VS Code from Microsoft's site:  https://code.visualstudio.com/download# Let's start the installation. First, select the language Accept the license agreement :) We all know nobody reads it Choose the path Create a shortcut Please read the preferences, they are useful. I usually select everything here And then simply install. After the installation is completed, we can move on to VScode with complacence. Now we can select the repository folder to synchronize GitHub. File-->Add Folder To Workspace--> <Select folder to synchronize> Let's jump to git installation for a while. Download git and install it. Download git from  https://git-scm.com/download/win Apply for GNU license Select the folder to install, then leave the options below and move forward. Most of the time git shortcuts are not needed. Now s...

Playing with registry keys

Hello Fellow System Administrators For some reasons, I had to keep track of some variables and instead of using environmental variables, I tried to write down these variables to registry. Basically I tried to write registry keys to \HKLM\Software\<Contoso> path. I think everyone passes by here knows which company Contoso.com is. Lets start with reading registry with get-childItem  hklm:\Software\Contoso Or Key properties like ( Get-ItemProperty  -Path  hklm: \ Software \Contoso). Test After reading key and key property, now we can check the key and create it on control if it doesn't exist. function   Get-RegistryKey {      param (     [ Parameter ( Position = 0 , mandatory = $true )][ String ] $RegProperty ,     [ Parameter ( Position = 0 , mandatory = $true )][ String ] $RegPath ,     [ String ] $RegKey = "."     )    ...