Open Source Storage Area Network–Part 2


In my previous article, I discussed various options for the Operating System for my Storage Area Network. In this article, I will discuss my choice in more detail. Below you can find links to other parts of this guide.

Operating System

Just to recap from my previous article, I chose to build my Operating System from the distribution up. For me, this provided the most flexibility of all the options discussed. I chose to stick with Ubuntu, but any Linux distribution that has the Kernel 3.5 should contain all the code built in to function as a SAN (More on that later). I will be installing a few other packages on top of this Operating System, but for the most part, it will remain a vanilla install. Here are some other distributions with the required kernel:

  • OpenSuSE
  • Fedora

It is important to note that although the use of a graphical interface can be used, my guide will not require any UI other than a terminal and therefore function from a vanilla install of a server edition of Ubuntu.

There are many reasons that I prefer Ubuntu over other flavors of Linux. For me Ubuntu has been easy from both a desktop and a server standpoint. It has also worked well for me on hypervisor products like ESXi and Hyper-V making it great for testing. Security wise I like how Ubuntu defaults all users to a non-root level terminal. It helps make fewer mistakes when typing commands on the terminal. It also means that logging in is a little more secure as the root account never gets used directly. Ubuntu is also very good at staying up to date with regular releases and packages.

Downsides to using Ubuntu is the use of Debian packages instead of RPMs. This can make some tools more difficult to get running outside of the packages mentioned below. There might also be some syntax differences or path differences between packages. Each flavor of Linux prefers some folders over others.

Packages

Once my Operating System is installed and functioning, I needed several software packages to provide functions of our SAN. Some of these packages can be optional and there may be other packages you want to add to this list such as RAID management software. I will not cover these as different products have different tools.

LIO

LIO is already technically installed and stands for Linux IO. Linux IO was developed by a company called Datera (formerly Rising Tides). Because this package is in the kernel, I do not need to install it, but you need to understand it. LIO handles communication for all the major storage protocols for Linux. This includes:

  • Fibre Channel
  • Fibre Channel over Ethernet
  • iSCSI

LIO in itself cannot be managed without calling the APIs for configuration. It also does not handle features like replication or snapshots. This is where some of the other packages come into play. LIO does not include functionality for NFS and CIFS. Both of these are handled by other products.

TargetCLI

TargetCLI is a free product also developed by Datera for LIO SAN management. They offer a feature rich Operating System that offers much more functionality, but has a yearly maintenance subscription. If you are looking to build this SAN for a small or medium business, I highly recommend looking at the route of the subscription. Because RTS OS requires a subscription, I will use their free tool for basic functionality.

OpenSSH Server

Because I are using this Operating System as a bare metal SAN, I need some way to manage the product remotely. You could connect a crash cart up and configure it as needed, but the choice is up to you. SSH gives me the ability to secure administer the SAN with a remote terminal window. There are free tools for various Operating Systems that will let you connect to an SSH server. In this guide, I will mostly be using PuTTY.

NFS

Because I am connecting using Fibre-Channel and iSCSI, I will not go into detail on setting up NFS. If you are following along and using Ubuntu, I recommend checking out this article for more information on setting up the NFS server. NFS can work outside LIO or beside LIO depending on your configuration. You can use LIO to connect a remote iSCSI system up and then use NFS to export paths should you choose.

CIFS/SMB

I am also not going into detail on CIFS or SMB as well, but installing Samba will allow you to make your SAN appear on the network as a normal file server for Windows machines. Just like NFS, Samba can share folders based on configurations of LIO.

Conclusion

In this article I discussed the software aspect of our SAN. This included the Operating System and the supporting software to turn the system into a SAN. In our next article, I will be discussing the hardware I am using for this SAN.

Important Links

Finally, a good friend of mine has an online book on how to use Linux as well as tips for setting up various services such as NFS and Samba: http://www.dearroz.com/

Advertisements

Open Source Storage Area Network–Part 1


In this multi-part blog post, I will be going over setting up a custom built Storage Area Network (SAN). In the commercial world, there are many different storage options from companies like NetApp, EMC, and Dell. Each of these companies has great strength when it comes to a SAN, but all have a downside when it comes to a small business or an IT professional wishing to learn more about the technology. That is that they cost a lot of money to acquire, set up, and support. There are some situations where spending a large amount of money may not be possible. That is where this guide comes in.

Like many IT professionals, I want to play around with various technologies at home, but do not have the budget to buy the latest or the greatest all the time. A SAN is one of these technologies in particular. I started looking into options to get as close to a professional SAN as possible. I discovered that there are many options out there that provide many of the features that commercial SAN solutions provide. In the discovery process, I found that some of the options would also work for a small business or test lab for a company.

One of the most important things to building a SAN is the hardware, but in this part of the guide, I will go over the Operating System. The Operating System determines the functionality that will be available such as iSCSI, CIFS, SMB, Fibre Channel, etc… I will only go over a few in this article.

Operating Systems

The few free and open source Operating Systems I have come across are listed below. Each one has some strengths and weaknesses. Please note that for this project, I am comparing these options for the purposes of a SAN and not a NAS. The difference between the two is outside the scope of this guide. As such, there are some features of these systems that are not covered under my review.

I have not installed or used most of these systems, but base all my reviews off the feature list, screenshots, and views of others on the internet. There are also many non-free operating systems that are much better, but the purpose of this guide is to find an open source solution.

OpenFiler

OpenFiler is a very feature rich SAN Operating System. Unfortunately, there are plugins that enhance functionality that are not free. OpenFiler is a great product for an experienced IT professional who is just getting started with SANs and doesn’t know a lot about Linux, but wants full featured capabilities from their SAN including high availability.

I give OpenFiler a difficulty of intermediate because it still requires knowledge about iSCSI configurations and use of the CLI to configure settings for Fibre Channel. Throughout the web interface there are references to Linux terminology. I give OpenFiler a rating of 2 because it is a very straightforward product, but it is based on a dated Linux distribution called rPath and it seems to have stagnated in development because rPath is no longer maintained.

Advantages

  • iSCSI
  • Fibre Channel
  • CIFS
  • NFS
  • Snapshots
  • Web Management Interface
  • High Availability

Disadvantages

  • Community Supported or Paid Support
  • Fiber Channel requires CLI configuration or purchase of plugin
  • Linux 2.6 Kernel (Latest for Linux is 3.5+)
  • rPath Linux is no longer distributed or supported

FreeNAS

FreeNAS is a fantastic Operating System for network storage. There are great features such as snapshots and thin provisioning. The interface is very intuitive and easy to use and FreeNAS is constantly being worked on and updated. For the average user, everything should be very manageable from the web interface.

FreeNAS is also given a difficulty of intermediate because you still end up needing to know iSCSI and other various Unix style terminology when setting up new disks and shares. I give FreeNAS a rating of 3 because it has a fantastic interface, but it is based on FreeBSD and that means a little extra work for someone who has never used FreeBSD. This is only because some of the commands and programs for management are slightly different from Linux distributions.

Advantages

  • Thin Provisioning
  • SMB/CIFS
  • NFS
  • iSCSI
  • Support for 10GbE Network Cards

Disadvantages

  • Uses istgt for iSCSI (Explained in part 2)
  • Based on FreeBSD
  • Community Supported or Paid Support

OpenMediaVault

OpenMediaVault is a feature rich NAS Operating System. There is a plugin for iSCSI targets that allows it to be a SAN, but it takes some work to get it installed. It would be great as a NAS box or using NFS for VMWare, but other users warn that the iSCSI implementation could be a lot better or that they have issues with iSCSI and VMWare.

I give OpenMediaVault a difficulty of Intermediate because the GUI has a vast number of settings and uses Linux terminology. I give it a rating of 2 because of their limited support for being a SAN as opposed to a NAS. iSCSI is limited and requires more advanced configurations to install compared to other plugins.

Advantages

  • Granular ACLs on Shares
  • SMB/CIFS
  • NFS
  • iSCSI

Disadvantages

  • iSCSI Requires Complex Setup 
  • Community Supported

Ubuntu Server 12.10

Using Ubuntu Server, I can customize the packages that I would like. This allows me to have complete control over the features that I need. It also means that I can reduce the footprint and optimize the speed of operations. Although I chose Ubuntu, there are other options like OpenSuSE and Fedora. The only requirement for this option (using this guide) is Linux with kernel version 3.5 or newer.

This option is the most advanced option because we are installing all the required features after installing the operating system. There is no management interface other than the command line. Theoretically I can install a GUI and do some options, but for the most part, this system will be managed with SSH. I give this option a rating of 4 because it is completely tailored to my specific needs and allows me to choose the best packages for the features I need. The downside is that I require the most knowledge of all the options to manage the system.

Advantages

  • Purpose Customized Operating System
  • iSCSI Targets
  • Fibre Channel over Ethernet
  • Fibre Channel

Disadvantages

  • Requires Time to Set Up 
  • Community Supported (Per Package)

Conclusion

For my purposes, I decided to go with building out a SAN based off of Ubuntu. I could have picked any flavor of Linux as long as it runs at least the 3.5 kernel. I chose Ubuntu in specific because that is the flavor of Linux I have the most experience with.

Following my guide, you should expect to have a fully functioning SAN with features like iSCSI and Fibre Channel that you can use to run virtual machines or host mass quantities of storage. From there you can then connect to VMWare or Hyper-V among other systems.

In my next article, I will go over the requirements for building out the OS in more detail along with the packages I am using. I encourage everyone reading this article to look at all the various options before settling on a specific option.

Introduction to IPv6


What is IP?

IP stands for Internet Protocol. IP is the base for all of today’s traffic between devices. It forms the foundation of the Internet and anything that connects to it requires IP to communicate. IP can be thought of as a language; everyone needs it and different languages cannot directly communicate without a translator.

“TCP/IP was initially developed in the 1970s as part of an effort to define a set of technologies to operate the fledgling Internet. The name “TCP/IP” came about when the original Transmission Control Program (TCP) was split into the Transmission Control Protocol (TCP) and Internet Protocol (IP). The first modern versions of these two key protocols were documented in 1980 as TCP version 4 and IP version 4.” (http://www.tcpipguide.com/free/t_TCPIPOverviewandHistory.htm)

The version of IP we have been using, Internet Protocol Version 4 (IPv4), was described in RFC 791 in September 1981. This protocol (or language) became one of the most popular protocols for data communication.


IPv4

IPv4, while great in implementation, has its limitations. The address for IPv4 is exactly 32 bits in length (a bit being a 1 or a 0). Taking this into account, the maximum number of IP addresses for version 4 can be calculated by the following equation: X = 2^32. When calculated, that turns out to be 4,294,967,296 addresses.

When you step back and look at the number of addresses, you need to realize a couple of facts. First, the number of addresses is less than the total number of people in the world. In 2010, the world population was estimated at 6,852,472,823 people (http://geography.about.com/od/obtainpopulationdata/a/worldpopulation.htm). Already we are past the maximum, but there is more to it than just that. Even though there are over 4 billion addresses available for IPv4, there are a certain number of “reserved” addresses that are used for special purposes and are not handed out. Out of the over 4 billion addresses, only about 3,706,456,113 are assignable.

To add to matters, connecting your computer up to the internet takes more than one address. Your computer takes an address and your Internet service provider (ISP) takes an IP address. Then your ISP has to do the same connecting to other ISPs, states, countries, and so forth. This is why the development of IPv6 began. They realized there was going to be a shortage as the Internet was taking off.


Y2K (For IPv4)

In February 2011, Internet Assigned Numbers Authority (IANA) issued out the rights to the last remaining blocks of addresses to Countries for assignment. Currently the last remaining IP addresses are being assigned to ISPs for issuing to companies and home users. It is estimated that the last addresses are to be issued by countries before the end of August 2011. Once that happens, IPv4 will be stopped in its tracks and cause ISPs to perform the following two things:

· Carrier-grade Network Address Translation (NAT) – Basically the ISP will be putting all home users inside isolated “local” networks. The best example is going to the store and getting a new router so you can support multiple computers with 1 internet connection. One of the major problems this will cause is in Gaming. Computer and Console games that use the internet do not like these home routers without special configurations. Given that the ISP will be controlling these systems, games may not be playable anymore.

· IPv6 (IP Version 6) – This is the main focus of my series of articles. This protocol was designed to replace version 4 by providing substantially more addresses. How many more? How about 3.4×10^38 addresses! I will explain this more later.

With these things in mind, something is going to have to change for the internet to continue functioning correctly. Both of these pose big problems ahead as implementation is going to be difficult and costly.


IPv6

Now that we have the background on IPv4, let’s talk a little bit about IPv6. IPv6 has been around for a long time. The reasons behind why it has not taken off are probably due to many different factors, but from my own personal opinion, it is because the IPv6 has differences in implementation.

Tons of Addressing Space

First, IPv6 has tons more addresses available. We are talking about a massive increase in the number of available addresses. IPv6 is 128 bits long containing 3.4×10^38 addresses over IPv4’s mere 4.2 billion. When written out that number looks like this:

340,282,366,920,938,463,463,374,607,431,768,211,456

That means that for every person in the population of the world in 2010, there are at least 4.9 × 10^28 addresses. Another reference to IPv6’s capacity is as follows:

“The earth’s surface area is about 510 trillion square meters. If a typical computer has a footprint of about a tenth of a square meter, we would have to stack computers 10 billion high blanketing the entire surface of the earth to use up that same trillionth of the address space.” (http://www.tcpipguide.com/free/t_IPv6AddressSizeandAddressSpace-2.htm)

Will we ever run out of IPv6 addresses? The short answer is not in the near future. This brings us to the next key point of public addresses.

Public Addressing

Currently, most homes with high-speed internet have what is called a router. This is the little box that sits connecting you to your ISP and allowing multiple computers to access the Internet at once (also sometimes providing wireless access). In general, a residential home has one public IP address and one or more private (192.168.x.x) addresses. To see your current public IP address, you can go to http://ip-lookup.net/ and see your public address. In IPv4, there are not enough addresses for every computer in the household to have a public address so the router provides a service called NAT. Without getting into details about NAT, it basically hides multiple systems behind 1 public IP address. With the number of addresses available for IPv6, there is no longer a need for NAT. IPv6 will put every device on the internet with their own IP address.

Before I get a bunch of comments on this, I would like to point out to those individuals that are big fans of privacy that there are several components that will still aid in privacy such as a firewall, temporary addressing, and the fact that by default IPv6 addresses are based on a MAC or are randomly generated (Typically seen by default in Windows) which mean privacy and security can still be achieved.

Multiple Scope Addressing

IPv6 also has the ability for a system to have multiple addresses. Typically these addresses are classified under “scope” which determines where traffic is allowed to go or what type of traffic it is. There are 2 main scopes to understand at a base level. The main two are Link-Local and Global Unicast which designate private and public addresses respectively. I will cover others in a later topic.


Where is IPv5?

IPv5 was designed as an experiment towards streaming voice and video. The protocol was designed differently from IPv4 and could not be used for communication by all types of data. Ultimately the protocol ended up being called ST2. Because of this, the next generation of IP had to go with version 6.


Conclusion

While I can talk for days on both IPv4 and IPv6, I will save it for other articles. With the basic summary I have provided, you should be able to understand what IP is, why we need to move to version 6 and what the main differences are. If there is one thing I hope you understand from this article, that is to start trying to get devices that will support IPv6 as the year draws to a close. Only by raising your voice and concern about IPv6 can we speed the move.


Where can I go from here?

There are tons of sources you can use to learn more about IPv6. Although I will have articles on this topic later, you can get started at some of the following sites:

http://www.cisco.com/web/solutions/netsys/ipv6/index.html – Cisco IPv6 Transition Information

http://ipv6.net/ – IPv6 Resources

http://www.ipv6forum.com/ – IPv6 Forum

https://wiki.tools.isoc.org/IPv6_Deployment/IPv6_for_Software_Developers/List_of_Resources_for_IPv6_Programmers – IPv6 Programming Resources

http://www.ipv6now.com.au/resources.php – General IPv6 Resources

World IPv6 Day


Today is the international IPv6 day. This is an important day for IPv6 as it becomes a world-wide test for the functionality, feasibility, and potential impact it may have on the world. In my upcoming articles, I will be going over what IPv6 is, why we need it, and for geeky people, how to set up a tunnel broker to begin testing in their home networks.

It is important to understand that support by companies, ISPs and homes will be required to make this transition successful. Without demand from people, IPv4 will begin to run into issues as address pools at ISPs begin to deplete their resources for assigning addresses.

Companies like Google, Yahoo, Bing, Facebook, Government Sites, and others are all participating in this event to help spread awareness. During this time, some sites may see some issues, but rest assured, by the end of the day, sites will be back to normal and IPv6 will have taken a big step towards implementation.

You can learn more @ http://www.worldipv6day.org/

You can see sites supporting IPv6 today @ http://ipv6eyechart.ripe.net/

You can also see detailed information on the status @ http://v6day.ripe.net/cgi-bin/index.cgi

Stay tuned for upcoming articles about IPv6.

Greetings to Everyone


I have decided recently to create a blog about my adventures in technology. I will be sharing information about current or new technology as well as conceptual ideas. I will try to post often when I get the chance and have an idea, but I hope that my posts are both entertaining and informational.

I would briefly like to talk about myself. I have been active in technology for at least 15 years with a degree in network management. I have extensive knowledge in software development using primarily C#, VB.NET, HTML and SQL. I have programmed for at least 10 years, starting with VB6 and HTML.

I will occasionally publish articles about both networking and development about personal and professional projects.

Be sure to check back soon.