One of
the important new features of
the AK8 code is
the ability to use multiple IP addresses on
the same physical network port. This feature is called VNICs, or Virtual NICs. This allows us to no longer "burn" a whole port in a cluster when one cluster peer owns a network port. Traditionally, we have had to leave Net0 empty on controller 2, because it was used for managing controller 1. Vise-versa for Net1 on Controller 1. Then, if you have data going over 10GigE ports, you probably only had half of your ports running at any given time, and
the partner 10GigE port on
the other controller just sat there, doing nothing, unless
the first controller went down.
What a waste. Those days are over.
I want to thank and give a big shout-out to our good partner, OnX Enterprise Solutions, for allowing me to come into their
lab and play around with their 7320 to do this demo. They let me make a big mess of their
lab for
the day as I played around with VNICs. If you're looking for a partner who knows Oracle well and can also piece together a solution from multiple vendors to get you what you need, OnX is a good choice. If you would like to talk to your local OnX rep, you can contact Scott Gill at
[email protected] and he can point you in
the right direction for your area.
Here we go:
Here is what your Datalinks window looks like BEFORE you upgrade to AK8.
Here's what
the same screen looks like after you upgrade. See
the new box?
So here is my current network setup. I have my 4 physical interfaces setup each with an IP address. If I ping them, no problems.
So I can ping 180, 181, 251, and 252. However, if I try to ping 240, it does not work, as
the 240 address is not being used by any of these interfaces, right?Let's change that.
Here, I'm going to make a new Datalink by clicking
the Datalink "Plus sign" button. I will check
the VNIC box and tell it to use igb2, even though another interface is already using it.
Now, I will create a new Interface, and choose "v_dl2" for it's datalink.
My new network screen looks like this. A few things to take note of here. First, when I click
the "igb2" device, it only highlights dl2 and int2. It does not highlight v_dl2 or v_int2.I think it should, but OK, it looks like VNICs don't highlight when you click
the device. Second, note how
the underscore character in v_dl2 and v_int2 do not seem to show on this screen. You can see it plainly if you go in and edit them, but from here it looks like a space instead of an underscore. Just a cosmetic bug, but something to be aware of.
Now, if I click
the VNIC datalink "v_dl2", on
the other hand, it DOES highlight
the device it belongs to, as it should. Seen here: Note that it did not, however, highlight int2 with it, even though int2 is connected to igb2. That's because we clicked v_dl2, which int2 has nothing to do with. So I'm OK with that.
So let's try pinging 240 now. Of course, it works great.
So I now make another VNIC, and call it v_dl3 using igb3, and v_int3 with an address of 241. I then setup three shares, using ports 251, 240, and 241.Remember that IP 251 and 240 both are using
the same physical port of igb2, and IP 241 is using port igb3.
Next, I copy a folder full of stuff over to all three shares at
the same time. I have analytics going so I can see
the traffic. My top chart is showing
the logical interfaces, and
the bottom chart is showing
the physical ports.Sure enough, look at
the igb2 and vnic1 interfaces. They equal
the traffic going over
the igb2 physical port on
the second chart. VNIC2, on
the other hand, gets igb3 all to itself.
This would work
the same way with 10Gig or Infiniband ports. You can now have multiple IP addresses and even completely different subnets sharing
the same physical ports. You may need to make route table entries for that. This allows us to use all of
the ports you paid for with no more waste.
Very, very cool.
One small "bug" I found when doing this. It's really not a bug, it was designed to do this when VNICs were not around. But now that we have NVIC capability, they should probably change this. I've alerted
the engineering team about this and they're looking into it, so perhaps it will be fixed in a later code.
Here it is. Remember when we made
the new VNIC datalink, I specifically said to click on
the "Plus Sign" button to create it? I don't always do that. I really like to use
the drag-and-drop method to create my datalinks in
the network screen.HOWEVER, if you were to do that for building a VNIC, it will mess you up a little. Watch this.
Here, I'm dragging igb3 over to make a new datalink. igb3 is already being used by dl3, but I'm going to make this a VNIC, so who cares, right?
Well,
the ZFSSA does not KNOW you are going to make it a VNIC, now does it? So... it works as designed and REMOVES
the igb3 device from
the current dl3 datalink in
the background. See how it's now missing? At
the same time,
the dl3 datalink choice is missing from my list of possible VNICs for me to choose from!!!! Hey!!! I wanted to pick dl3. Why isn't it on
the list??? Well, it can't be on this list because dl3 no longer has a device associated with it. Bummer for you.
When you click cancel,
the device is still missing from dl3.
The fix is easy. Just edit dl3 by clicking
the pencil button, do absolutely nothing, and click "Apply".
The device will magically come back.
Now, make
the VNIC datalink by clicking
the "Plus Sign" button. Sure enough, once you check
the VNIC box, dl3 is a valid choice. No problem.
That's it for now. Have fun with VNICs.