5
5
Controller Architecture
Aug 27, 2025, 11:56 PM
5.Controller Architecture
Play
00:00
55:59
Mute
Settings
(0:17) So, today we are going to talk about controller architecture, let me make
sure that I got (0:22) started. (0:31) Okay, let's start about controller
architecture, so you know right, controller means nothing (0:43) but it might be
our FAS or AFF, it is a controller, hardware controller, okay, so the controller
(0:50) is having lot of components inside it, so today we are going to discuss like
what are (0:56) the components we have inside controller and what is the purpose of
those components, okay. (1:09) Assume that this is my controller, okay, so first we
will talk about the ports, what are (1:15) the different ports on top of the
controller, okay, after that we will talk about the components (1:22) inside the
controller, so mainly we have three ports on top of our controller, three ports,
(1:40) first one is console port, console or serial port, we call it as, okay,
second one is service (1:56) processor, SP, that means processor is not a physical
port, but I am going to tell you (2:09) for now, let us assume it as a physical
port, okay, I will tell you after that, what is (2:15) the, what is, how service
processor, okay, and we will also call it as RLM and BM, now (2:27) in new hardware
models, in new controller models, we are calling it as SP or service processor,
(2:32) but in older models are there, right, like fast 3200 and 3000, in those
models, we used to call (2:40) them as RLM in some models and in some models, we
used to call them as BMC, okay, remote LAN manager (2:47) and something is BMC,
okay, next thing is another port is E0M, (2:58) okay, E0M, E0M means nothing but it
is a management port, these are the three important (3:07) ports we will be having
on top of our controller, now let us talk about the purpose of these three (3:13)
ports, we do have a few more ports, let us discuss them little later, okay, so
console port or (3:19) serial port, so by using console port, we can connect our
laptop or desktop to controller (3:27) directly through a wired connection and we
can access controller and we can do our work, we can (3:34) configure everything,
generally, when we got a new controller from NetApp, okay, it will be not (3:40)
having any configurations, right, so it will be not able to connect to the
controller remotely (3:45) because it does not have any IP address and all, so in
order to do the initial configuration, (3:51) we must connect our laptop or desktop
or server to controller through a console connection, (4:00) through console port,
so with the help of console port, we will be able to access the controller (4:04)
and we can configure the stuff, like we can configure, we can start configuring the
(4:11) controller or creating a cluster, okay, so the main purpose of controller,
sorry, (4:18) service processor or console, not service processor, sorry, the main
purpose of console (4:23) port or serial port is for initial configuration, mostly,
we will use it for only initial (4:34) configuration, later, most of the people,
they will not use it until you have a specific requirement, (4:41) okay, I am going
to talk about that little later, okay, next thing, E0M, E0M means (4:47) nothing
but a management port, which we will use regularly, like during the, as I told you,
(4:56) during the initial configurations, which we are configuring through console
or serial port, (5:02) we will assign an IP address to E0M port, so once we assign
the IP address to the E0M port, (5:09) what we can do, from now onwards, we do not
need to connect to the controller through console, (5:14) what we can do, we can
connect to the controller with the help of management IP and we can log in (5:20)
from a remote location as well, with the help of IP address, so mostly, in real
time, 90% of the work (5:28) can be done through management port only, okay, so
this is a management port, which will work (5:35) with IP address and while
configuring these things, we will get the IP addresses and all (5:41) from the
networking team, free IP addresses, unused IPs, okay, and 90% of the work will be
(5:48) done through management port only, normal work, service processor, what is
the purpose of the (5:56) service processor, the main purpose is service processor,
okay, will be connected to the (6:04) console in the backend, okay, service
processor will be connected to the (6:08) console in the backend, actually, service
processor is not a port, a physical port, okay, (6:15) it is a chip, which will be
on top of a motherboard, okay, it is a chip, software chip, (6:25) which will be on
top of motherboard and how it can make the connection outside the controller,
(6:31) it will make the connection outside the controller through, again, easily
and quickly, okay, (6:37) so what is the advantage of having service processor,
okay, I have a console port and I (6:42) have a management port, then what is the
purpose of service processor, why do I need a service (6:46) processor, again,
service processor also will work based on the IP address only, that means, (6:54)
while doing the initial configurations, I will configure the IP address to the
service processor, (7:01) so once I configure the IP address to the service
processor, what I can do, I can connect to (7:07) service processor from a remote
location and from service processor, I can connect to my controller (7:15) through
a console or serial port, that means, when you want to do, when you want to connect
to your (7:21) controller through console, you don't need to come to the location,
like where you have that (7:28) controller, you can connect to the console from
remote location with the help of service processor, (7:36) so what is the main
purpose, actually, what is the difference, I have an IP address on E0M, right,
(7:42) so I can connect to the E0M and I can access the controller remotely, then
why do I need, (7:47) again, service processor, the main purpose is, like whenever
you are doing maintenance activities, (7:53) like rebooting the controller or
hardware replacements or data on dev upgrades, you need (7:59) to reboot the
controller or you need to shut down the controller, during that time, along with
the (8:04) controller, your management port also will goes down, when your
management port is down, you'll (8:10) be not able to access your controller with
the help of IP from remote location, so when you are (8:16) doing these kind of
activities, you need to come to the controller and you have to connect to your
(8:21) controller through console, if you connect through the console, you can see
what is happening in the (8:26) background, even controller is down also, it will
be running in the background, right, so you can (8:31) see the things, what is
happening in the background, but as you have a service processor, you don't (8:36)
need to come to the location, where you have a controller, you can connect to your
controller (8:42) console with the help of service processor, even if your
controller is down, if your controller is (8:47) having power connection, you'll be
able to access your controller console with the help of service (8:53) processor,
okay, the main purpose of service processor is remote console connectivity, (9:02)
remote console connectivity, okay, any questions guys, yeah Naveen, this service
processor (9:09) from this from service processor, we can collect logs also, yes
you can, okay, I mean apart from (9:18) just a remote console connection, we do
have a other purpose for service processor as well, like (9:22) service processor
will do monitoring of your controller and all, but I'm not going to cover (9:27) it
here, I'm going to cover that in advanced topics, okay, understood, okay, the main
purpose is for (9:35) remote console connection, any questions guys, because these
three ports are very very important, (9:40) you need to understand the purpose of
them, okay, cool, so apart from these (9:52) ports, we do have a few more ports, a
few of the network ports, (10:03) okay, you know the purpose of network ports,
right, I already told you, (10:07) we can connect our controller through normal IP
network, LAN network and we can present (10:15) data to clients, storage to clients
through NAS protocols, okay, this is for NAS (10:22) LAN connectivity, okay, this
is NAS LAN connectivity, these ports are for, just for the (10:28) diagram purpose,
diagram sake, I have just drawn three ports only, but number of ports again,
(10:33) number of NAS ports depends on your controller model, if you have purchased
a 9000, (10:39) they'll be, you'll be having very huge, I mean high amount of
ports, like 12 ports or something, (10:43) but if you purchase like a small
controllers, like 2500 or 2600, then you'll be having four (10:49) or five ports,
something like that, okay, the number of ports again depends on the (10:54)
controller model, I just draw it for diagram sake, okay, and along with normal
network ports (11:00) for NAS connections, we do have a dedicated ports for SAN as
well, okay, we do have a ports for SAN, (11:10) okay, so those are, these are the
SAN ports and with the help of these ports only, (11:30) we'll be able to connect
to our, connect our controller to fabric, SAN network and we'll (11:36) be able to
present storage to clients, which are connected to our SAN network, okay, along
with (11:41) that, we do have few more ports, those are SAS ports, these are SAS
ports, what is the purpose of (11:57) SAS ports, with the help of SAS ports only,
we'll be able to connect our controllers to disk shelves, (12:03) okay, these are
the back end connections, which will connect your controller to (12:07) disk
shelves, this is the purpose, disk shelf connectivity, so these are the major ports
(12:19) available on top of SCAN, okay, any questions guys and one more thing is,
(12:26) it doesn't mean that you will be having dedicated NAS and SAN ports, okay,
based on the model and (12:33) based on the discussions you will be having with
NetApp, there are few ports in these days, (12:38) which are unified ports, that
means, it's same port, you can use it for NAS or same port, you can use it (12:44)
for SAN, how can I do that, I'm not going to tell you those things now, I'm going
to cover those, (12:52) these kind of things in advanced topics, so don't worry
about them, okay, the people who are (12:57) already working on NetApp, yeah, they
might get this question, that's all, okay, yes, thank you, (13:05) yeah, unified
ports, okay, now let's talk about the components inside the controller, (13:14)
what are the, and one more thing, you know that, right, and along with the all
these ports, (13:20) we'll be having maybe two or four ports for our cluster
interconnectivity, to connect our (13:27) network, I mean, controller to a cluster,
cluster private network, 10 GB ports, right, (13:33) you remember, based on the
controller model, you'll be having either two ports or four ports, (13:38) okay,
these ports are for cluster private network, okay, now let's talk about the (13:54)
different components in, within the controller and how they will work, (13:59) the
first major component in our controller is cache, yeah, is the (14:09) first major
component, cache or we can call it as memory as well, memory, okay, next one is
(14:25) NVRAM, okay, next one is NVRAM, so your cache will be divided into two
partitions, (14:43) two logical partitions by default, in any controller, okay,
your cache will be divided into (14:48) two logical partitions, one is for write,
write data and another one is for read data, (15:02) okay, along with that, we have
a NVRAM, NVRAM also will be logically divided into partitions, (15:13) but the
number of logical partition depends on your controller connectivity, for example,
(15:18) if your controller is a part of a HA pair, then your NVRAM will be divided
into four partitions, (15:25) but if your controller is part of a standalone, like
it is not pairing with any other controller, (15:32) it is a standalone controller,
then it will be divided into only two partitions, but I'm assuming (15:37) here
that my controller is part of HA pair, so that I'm drawing four logical partitions,
(15:43) I'm dividing my NVRAM into four logical partitions, okay, so these are the
four logical (15:50) partitions, so these logical partitions and everything will be
configured from NetApp only, (15:56) by NetApp only, like based on our discussions
with NetApp during the purchase, they'll configure (16:03) everything and they'll
give it to us, so you don't need to deal with all this stuff, (16:06) okay, we
can't do anything related to these things, (16:11) okay, now what is the purpose of
NVRAM and cache memory, so before going that, (16:19) so we have two partitions,
right, I mean, we have four partitions of NVRAM, cache we understand, (16:25) like
one partition is for write data and another partition is for read data, what about
NVRAM, (16:31) so NVRAM, the first two partitions will be dedicated for our local
controller, (16:37) local controller means, let's assume that my controller name is
FAS01 and let's assume that (16:44) I have another controller here, which is a HA
pair FAS02, okay, let's assume that (16:51) and let me draw it here, okay, let's
assume that this is my controller and here as well, (16:57) I'll be having all the
components like cache, memory, NVRAM and all, okay, again this NVRAM (17:04) also
as this is part of HA pair will be divided into four logical partitions, so the
first two (17:14) partitions, they'll be reserved for, okay, they are reserved for
FAS01, okay, they are reserved (17:21) for FAS01 and the second two partitions,
okay, the second two partitions, they are, they'll be (17:30) reserved for, okay,
FAS02, that means partner controller, okay, the first two partitions in this
(17:42) other controller NVRAM will be reserved for its local, that means these
first two partitions will (17:48) be reserved for its own and the second two
partitions will be reserved for the partner (17:53) controller, that means what is
the partner controller for FAS02, it is FAS01, right, yeah, (17:59) these two
partitions will be reserved for FAS01, this is how it will be, okay, I'll tell you
why (18:08) we need that, I mean why we need to reserve the space on NVRAM for, why
they have reserved the (18:14) space on NVRAM for partner controller, I'm going to
talk about that little later, okay, so what is (18:20) the purpose actually, what
is the purpose of caching and what is the purpose of NVRAM, so (18:26) normally
whenever I present a space or storage to my clients, what they'll do, they'll start
(18:33) writing data to the space, right, whenever they write the data, it will
start, it will not save (18:39) there, right, it has to come to storage, it has to
copy to the storage, whenever they write (18:44) something to the space we provided
through storage, yeah, whatever the data they copy, they'll come, (18:50) it will
come to storage, okay, so if it is NAS, then it will travel over NAS network and it
will (18:57) enter into our controller with the help of NAS ports, network ports,
if it is SAN, my clients (19:05) are connected to SAN network, then it will travel
all over the SAN network and it will (19:09) enter into our controller through
fiber channel adapters, SAN ports, okay, once it enters into the (19:16) SAN, it
will not write the data to the disks immediately, it will not do that, so what it
will (19:24) do, first it will write the data to the right part of the cache, okay,
it will write the data to the (19:33) right part of the cache, along with that,
along with that, it will write the data to one of the (19:42) local controller and
VRAM reserve, I have two reserves, right, for the local controller in this (19:47)
environment, FAS01 will be called as a local reserve and FAS02 is reserved as a
partner controller, (19:53) remote reserve, remote controller reserve, so the same
data journal, okay, the same data (19:58) journal will be copied to the NVRAM as
well, local NVRAM and the same data will be copied to the (20:09) partner
controller, in partner controller also, we have a reserve for our FAS01, right, so
the (20:16) same data will be copied to the NVRAM, FAS01, NVRAM reserve on FAS02,
so whenever data is (20:24) copying to the controller, it is copying to three
places initially, it is not copying to the disks (20:32) directly, first, it will
copy the data to the cache, along with that cache, it will copy the (20:37) data
journal into the NVRAM, local NVRAM reserve and partner controller NVRAM reserve as
well, (20:43) that means, we are having the data, same data, three copies in three
different locations, (20:50) okay, it will keep on copying the data like this, it
will not commit the data to the disks (20:55) immediately, it will keep on taking
the data from clients to cache, NVRAM, local NVRAM and (21:02) partner controller
NVRAM reserve, okay, it will keep on doing like that, how long it will do like
(21:08) that, it will take the data like this for 10 seconds, okay, it will take
the data like this for (21:17) 10 seconds, once it hit the 10 second time period,
then what it will do, there is a background (21:25) process called CP, consistency
point, okay, this is a background process which will run (21:37) by ONTAP in the
background, so this consistency point, what it will do, (21:43) when this
consistency point will trigger every 10 seconds, so once the consistency point is
(21:50) triggered, then whatever the data came to our controller within this past
10 seconds, (21:58) that particular data will be committed to disks, okay, so far,
I mean, data is not committed to (22:07) disk, only data copied to cache, local
NVRAM and partner controller NVRAM reserve, that's it, (22:13) but controller will
send acknowledgement to your host stating that, okay, your data is copied like
(22:18) that, but data is not actually committed to the disk, until we commit the
data to the disk, (22:24) it is not like we copied the data to the permanent
location, but still, (22:30) the controller and ONTAP will take care of that later,
okay, I'll tell you little later, (22:37) like why we are not, why NetApp is not
copying the data to the disks directly, okay, so (22:46) when once the consistency
point is triggered, then my cache and NVRAM first reserve will work (22:53)
together and will write the data to the disks in the disk shells, okay, disks in
the disk shells, (23:00) let's assume that we have disks, right, disk shell, okay,
that's fine, what about the coming (23:09) request, like my client will not wait
for that, right, like he will not wait until (23:16) my NVRAM and cache will copy
the data to the disk, right, he'll keep on writing the data (23:21) from his end,
okay, that is the main purpose of storage, right, it should take the data anytime
(23:28) with minimum latency, that is the main purpose of storage, why we purchased
it, okay, so what (23:34) will happen now, so during this time, I have a second
part of NVRAM, right, I have a second (23:42) partition of NVRAM, what it will do,
it will work with cache and it will take the data from (23:48) clients, see here
cache is playing two roles, cache is working with partner, I mean partition (23:56)
one of NVRAM and it is writing the data, it is committing the data, unwritten data
to the disks (24:02) and during the same time, my second NVRAM partition, what it
will do, it will work with (24:08) cache and it will take the data from the
clients, okay, it will take the data from the clients, (24:14) now let's assume
that my client copied some more data in next 10 seconds to the cache as well as
(24:23) to the second partition of the NVRAM, the same data will be as I told you,
it will be replicated (24:28) to, it will
be copied to the partner controller NVRAM reservoir as well, okay, now again once
the (24:37) 10 seconds period completed, again it will hit that, it will trigger
the another consistency point, (24:45) so before that whenever this consistency
point triggers, meanwhile my NVRAM first partition (24:52) already started working
with cache and dumping the data, right, to the disks, so during this, (25:01) I
mean before the another consistency point, what it will do, it will finish the, it
will finish (25:06) writing the data, okay and it will flush the data, it will
flush the data after writing the data to (25:14) the disks from NVRAM and write
part of the cache and it will make sure, it will be ready (25:23) by next
consistency point to take the data from the clients because whenever the (25:29)
second consistency point triggers, next consistency point triggers, my second part
has to work with (25:35) cache and commit the data whatever it came in last 10
seconds to the disk, right, so that time (25:41) my first partition will work with
cache and will take the data from the clients, (25:47) like that these two parts of
the NVRAM, what they'll do, they'll keep on exchanging their role, (25:54) okay, in
first 10 seconds, this will work with cache and it will take the data from clients
(25:58) and in second 10 seconds, it will write the, it will work with cache and
write the whatever (26:03) data came in, right, in last 10 seconds to the disk,
during that time, my second partition will (26:08) work with the host, whenever
next consistency point triggered, they'll exchange the role, second (26:14)
partition will work with cache and will commit the data to the disk and first
partition will (26:19) take the data from the clients, like that they'll keep on
exchanging the roles, okay, this is how (26:25) they'll work, it will work when we
are writing the data to the clients, (26:31) okay, I mean when we are getting the
data from the clients, any questions guys on consistency (26:37) point or on NVRAM?
Yeah, on the NVRAM part, Naveen, this that you marked as the orange and (26:46)
green color, so this NVRAM has four partitions, all are for write purpose or there
is some for (26:51) read purpose also? No, NVRAM is for write purpose only, that I
am going to discuss that little later.
(26:57) Okay, okay, okay, yeah, any questions guys, Aditya? (27:07) No, sir, no,
sir, so, okay, sorry, someone asked, I mean what happens with data and cache,
(27:15) the NVRAM data is being pushed to there, back into the data behind the
cache? (27:20) Yeah, even cache also flashes itself, but it will be duplicated,
right? (27:26) Sorry? It will be duplicated, because the same data is there, cache
and NVRAM is the same data? (27:31) No, no, no, actually cache will not write the
data, we will be having same amount of data in (27:37) cache and NVRAM for safety
purpose. Does it delete the data once the NVRAM? (27:43) Yeah, yeah, it will flush
the data from there, in cache as well as NVRAM, once it commits the data (27:49) to
the disk. My question is, once the data in NVRAM is being pushed to disk, what will
happen to the (27:57) data in the cache? Will it be erased or? That is what I am
saying, it will flush, (28:03) it will delete it, it will erased.
Only the data in NVRAM is being pushed, etc? (28:11) No, no, no, as I told you, I
have not mentioned that NVRAM worked alone, right? NVRAM has to (28:16) work with
the cache. Without cache, NVRAM will not be able to push everything alone. (28:21)
You got it, what I am saying? They will work together and they will copy the data,
I mean, (28:29) they will find out whatever the unwritten data, okay, like the data
which came into (28:34) the controller in past 10 seconds and they will commit that
particular data to disks.
(28:40) Okay, and one more question, what if the controller shut down? (28:44) That
is what, I am going to discuss that a little later. (28:48) That is the reason we
have another controller, I mean, another reserve in NVRAM. (28:52) I am going to
talk about that.
Okay, any questions guys? (28:58) Yeah, I understood, I understand, that is what I
am going to discuss now, I mean, little later. (29:05) Yeah, I will explain you
that. (29:06) Okay, now let us talk about like why we need to have a reserve in
partner controller as well.
(29:16) For example, my NVRAM is taking the data from clients, okay, now still the
CP not occurred, (29:27) okay, let us assume that it is taking the data from my
clients from past seven seconds or eight (29:33) seconds, okay, let us assume that
seven seconds. All of a sudden, my controller went down, (29:45) okay, all of the
sudden my controller went down because of some power issue or because (29:51) some
hardware issue, then what will happen? See, NVRAM will be having, okay, NVRAM will
be having (30:04) battery backup, so with the help of battery backup, still my
NVRAM can sustain. For example, (30:15) let us assume that my NVRAM backup also got
failed, I mean, battery backup also got failed, (30:22) it was not able to sustain,
I mean, due to some issue on battery as well.
Still, the same data, (30:30) okay, whatever the data I have in NVRAM, right, this
local controller NVRAM, the same data will be (30:39) saved on the partner
controller NVRAM, right, so now as we have the same data, (30:49) okay, as we have
the same data journal in the partner controller NVRAM, what partner controller
(30:55) will do? Partner controller will take care of the data committee, like,
yeah, it will come to know (31:04) with the help of HA interconnect, as I told you
earlier, right, they'll be keep on exchanging the (31:08) hard bits, right, along
with the hard bit exchange, they'll also exchange the data within the NVRAM (31:17)
with each other, okay, with the help of HA interconnect only, the controllers
within the (31:22) HA pair and their NVRAMs will be able to sync with each other,
okay, so whenever my particular, (31:31) the FAS01 went down, whatever the
uncommitted data on my FAS01 NVRAM, okay, the same amount (31:39) of data I have
in, the same data I have in FAS02 as well, right, that is the reason I'm having the
(31:44) data duplicate in both the NVRAMs, so when my FAS02 went down, my FAS02 can
commit the data (31:53) to the disks, okay, and Naveen, one more question, like,
once the data has been written from the (32:05) client end, for an example, any
data is written in NAS or SAN environment, (32:09) once, when my host is getting
acknowledged, after this data has been written in the cache, (32:17) yeah,
immediately, but when the data are written to the cache end NVRAM, automatically,
it will, (32:22) controller will send acknowledgement to your host, that is the
purpose of having cache end NVRAM, (32:26) it will not wait until it will commit
the data to the disks, and data has been written (32:33) simultaneously, when both
cache end NVRAM or once, yes, simultaneously, okay, (32:45) okay, did you got what
you are asking for, I think Bhanu or Praveen, I mean, actually, (32:53) my question
is, what if complete storage system went down, when the data is still in NVRAM and
(32:59) cache, if the storage system abruptly shut down, during, because of power
issue, whatever it could (33:05) be, to the disks, sorry, hello, sorry, I got
disconnected, (33:15) can you repeat it again, yeah, when the data is in NVRAM or
cache, (33:22) what if the storage system went down suddenly, during, you know,
because of power supply, (33:27) hardware, whatever it is, whatever the issue could
be, yeah, yeah, yeah, that is what I am saying, (33:32) is it Bhanu, if both went
down, then yeah, whatever the uncommitted data, right, we will (33:39) lose that,
if both the HFS went down, yeah, there is no way we can sustain that, like whatever
the (33:45) 10 seconds of, last 10 seconds of data, we will lose it, we have, that
is what we have a battery (33:59) backup, right, so during that kind of scenario,
the battery backup will come into picture and (34:06) NVRAM, what it will do, it
will try to commit the data to the disks or else, what it will do, (34:12) we have
a spare drives, we will be having spare drives, okay, it will find the spare drives
(34:16) and it, unused drives and it will use them as vault drives, like we do not
have a dedicated (34:23) vaulting in that app, just like EMC or other vendors, it
will use the unused drives for (34:30) vaulting, like whenever both the controllers
are going down, what it will do, with the help of (34:35) NVRAM battery backup,
both the NVRAMs will, you know, will dump the data to the unused drives (34:44) and
it will keep it as a vault drive, so whenever you are bringing the controllers
down, when you (34:50) are, sorry, when you are bringing the controllers up, then
it will pull the data from there and it (34:57) will come up and it will fetch the
data and it will commit the data to the disks during the (35:02) next consistency,
okay, hello, is it clear, yeah, okay, now let us talk about the read part of the
(35:28) so normally, whenever write request occurs, this is the process what will
happen in the background, (35:33) okay, the data will be written to, okay, sorry
guys, yeah, so based on the consistency point, (35:56) it will commit the data from
NVRAM to the disks, okay, this is what will happen in the (36:05) background for
the write request, any write request, now let us talk about the read request,
(36:12) how it will work when it comes to a read request, for example, my client
already copied a data, (36:18) he copied some files or movie files or video files
or something, now he wants to open them, (36:24) he wants to play them, he wants to
play a movie that's stored in our storage, so that will call (36:30) it as a read
request, so again, same thing, if it is a NAS, then it will enter into our
controller (36:36) through NAS, I mean, network ports, if it is a SAN, then it will
enter into our network through (36:44) SAN ports, okay, sorry, it will enter into
our controller through SAN ports, (36:51) so first read request will come to cache,
so as I told, we have two partitions in cache, right, (36:59) one is a write
partition and another one is a read partition, so what read partition of the
(37:04) cache will do, what is the purpose of the read partition of the cache, read
partition of the (37:09) cache, the purpose is it will host the data which is
frequently accessed by the clients, (37:18) like for example, I have a movie file,
I have a video clip which my client is accessing very (37:25) regularly, he is
watching that video very regularly, then what our ONTAP will do, ONTAP (37:31) is
capable, okay, it is intelligent and it can understand, okay, he is accessing that
particular (37:37) file very frequently, so instead of having it in this, what it
will do, it will take a copy of (37:43) that particular file and it will write the
copy, it will maintain the copy of that particular file (37:49) into the read part
of the cache, so that whenever my client again opens the file, (37:58) the request
will come in, enter into the controller and first the request will go to the cache,
(38:02) read part of the cache, if it finds the file there, then it will open the
file from there (38:07) and so that it will improve the performance, what if they
will be not able to find the file over (38:13) there, okay, what if they will be
not able to find the file over there in the read cache, (38:17) then it has to
travel to the backend through sasports and it has to search for that particular
(38:25) data in all the shelves and disks, then it has to copy the data from there
to read part of the (38:32) cache and it will provide that, I mean, the file will
be opened, this is how it will work, (38:39) so the read part of the cache, what it
will do, the main purpose is to maintain the frequently (38:46) accessed data
within it, okay, if client is accessing some data, it will maintain the copy
(38:52) of data within it, so that every time when he tried to access that
particular file or video (39:00) clip again, it don't need to come to the backend
and search for the data in all the shelves and (39:06) disks, okay, it can give the
data from here itself, okay, that is the main purpose of the (39:12) read cache,
okay, so when client requests some data, if the data is found in the read part of
(39:22) the cache, then we will call it as read hit, okay, call it as read hit, for
example, he was not able (39:33) to find the data in the read cache, so the data is
not there in the read cache, so that time what (39:40) it has to do, it has to
travel to the backend and it has to go through all the shelves and disks, (39:45)
and then only it will be able to provide access to the client, right, that we will
call it as (39:52) read miss, read miss, number of read hits will improve the
performance of your controller, (40:02) okay, for example, okay, my cache memory is
not like a very big, right, it is a small in size (40:09) only, maybe it is in
like, based on the controller model, it is like 100 GB or 200 GB or 300 GB, (40:16)
something like that, so it will, but the data in my controller is in petabytes,
terabytes of data, (40:24) how can it, I mean, what it will do, they have an
intelligent mechanism in the background (40:30) which will clear the cache as well,
that means, okay, I have a video clip which (40:37) was accessed by my client
earlier, very frequently, now he is not accessing that particular file (40:44)
anymore, so what it will do, it will remove that file from a cache, it will remove
that file from (40:51) only cache, not from the disk, it will be having data in the
disks, okay, it will remove the copy (40:57) which it stored in cache, so that it
can copy other data which my client is accessing these (41:07) disks, okay, that is
how it will work. Is it like hot data and cold data? (41:16) Yeah, okay, yes, hot
data only, it will keep, frequently accessed means hot data. (41:21) Yeah, Navin,
one question I have regarding that you mentioned as unified ports, (41:28) so this
unified port, so how, is it a SFP or is it a CNS? (41:34) Yes, SFP, SFP, okay, I
mean, based on the module which we enter into that particular port, (41:42) it will
be converted into a network port or SAN port.
(41:46) Like it can connect FC ports as well as Ethernet also? (41:50) Yes, it is
capable of connecting to both, but based on the module which you are entering,
(41:56) that means if you are entering a FC module, then it will act like, it will
connect it to (42:00) Fabric channel network, if you entered a normal network
module, then it can be connected to the (42:08) internet, not both at a time, got
it? Okay, okay, yeah, I got it, so it is not (42:13) the block, the block is
unified, the block, the channel which is (42:21) attached to the controller, that
is unified, so it can contain, it can house either it's a (42:28) FC or it's
Ethernet or converged network. Exactly, exactly, okay, okay, now let's (42:38)
discuss about the third component, so we have another component, we'll call it as
(42:45) PAM, call this component as PAM, PAM2 actually, PAM2 is the, this is the
latest one, (42:56) what is the full form of PAM? Performance Session Module, okay,
that is the full form of PAM, (43:07) and this has another name, we can call it as
Flash Cache as well, okay, Flash Cache as well, (43:19) so what is the purpose of
the Flash Cache? Normally, Flash Cache in older arrays, (43:26) this Flash Cache or
PAM is an optional component, that means, you need to pay some extra money (43:33)
in order to have this PAM, if you don't want, you can ask them to remove it, this
is an optional (43:41) component, but in your models, whatever the models we are
getting now, they made it as a (43:47) mandatory, because it will impact the
performance, like if you don't have a PAM, it will impact your (43:54) controller
performance, that's why they made it as a mandatory component. Now, let's see how
it (43:59) will work, how PAM will work, okay, so we discussed, right, like
whenever the write request is (44:07) happening, after committing the data to the
disks, my NVRAM will remove, flush the data, (44:14) right, that is what I told
you, okay, so before flushing the data, what NVRAM will do, NVRAM (44:22) will
create a log and it will save those logs in the PAM, if you have a PAM, then it
will save those (44:29) logs to the PAM, okay, and along with that, like whatever
that, and I told you, right, like (44:40) previously, there was a data, which is
accessed by my client, that's the reason my read part of (44:47) the caching
maintained the data within it, okay, but now my client is not accessing that data,
(44:53) so what my read cache will do, read cache will flush that data, right, from
read part of the (45:01) caching, so whatever the data flushed by read cache also,
that log also will be stored here, (45:09) that particular data related stuff also
will be stored in the PAM, so PAM is very huge in size, (45:15) when compared to
NVRAM and caching, the PAM is, the minimum size of PAM is 512 GB and it will
(45:23) be available to be in 1 TB and 2 TB as well, so you don't have any option
like that, but the thing (45:29) is, based on the controller model, they'll give
you the PAM, if it is a very high-end controller, (45:34) like 9000 and all,
they'll give you a 2 TB PAM, if it is a mid-range array, then they'll give you 1
(45:38) TB PAM, if it is a low-end, then it is 512 GB PAM, okay, now I'll tell you
what is the main, yeah, (45:47) sorry to interrupt, this PAM, is it works along
with NVRAM or it works with the caching? (45:54) That is what I'm going to explain,
okay, yeah, okay, so whenever mainly this PAM is related to, (46:06) it can, it
will deal with read requests, okay, it will deal with only read requests, so
whenever any (46:14) read request comes in, first it will go to the read part of
the cache and it will search for (46:19) the data, right, if it is not there, then
it will, it will go to the disks, it has to search all the (46:24) shelves, all the
disks and it has to find the data and it has to copy the data back to the cache
(46:30) and it will fulfill the request of my user, that is what it will happen,
right, so searching the (46:37) shelves and all the disks is adding additional
latency, right, it is adding additional latency (46:44) to the, my request, so
which will impact the performance of the controller, right, (46:51) so in order to
avoid that, they have introduced PAM actually, so as I told you, (46:58) PAM
contains the logs of the data which flushed from nvram as well as which flushed
from the (47:06) read part of the cache, right, so whenever any read request comes
in, first it will go to the (47:11) read part of the cache, if it was not able to
find the data there, then it will not go to the disks (47:17) directly, it will
come to the PAM, so in PAM, as I told you, it is maintaining logs, right, logs of
(47:24) the data, so let me give you a real-time example, for example, I have a
thousand pages book, okay, (47:32) now I want to, I asked you to open a topic, it
don't have index, then what you need to do, (47:38) you have to go to, go through
the book page by page, right, what if I have an index, I don't (47:44) need to go
through the entire book, I'll go through just index, so that I'll come to know,
(47:48) this particular topic is in this page, 950 page or something, same thing,
so when it is not able (47:55) to find the data in the read part of the cache, it
will come to the PAM and it will go through the (48:00) logs instead of going to
the shelves, okay, and by going through the logs here, it will come to know,
(48:08) okay, this particular data is in shelf 10, disk 20, something like that, it
will come to know the exact (48:14) location of data, so you don't need to scan all
the shelves and disk, right, it can go to the (48:19) particular location and fetch
the data from there and it will copy the data to the read part of the (48:24) cache
and it will fulfill the request, so that is the main advantage of having PAM or
flash cache, (48:32) is it clear? Yes, sir, and one more thing, this, when you say
logs, so is it in nodes or (48:39) there is something else? Something else and
we'll call it as NV log, okay, NV log, okay, okay, yeah, (48:48) I know it's a
different, I'll tell you that later, yeah, okay, sir, yeah, (48:56) okay, so mainly
the main purpose of NVRAM is to for read request, now let me clarify you, (49:03)
so cache will work on both write as well as read, okay, if it is a write request,
(49:14) then it will work with NVRAM, if it is a read request, then it will work
with PAM, (49:17) but cache will be involved in both writes and reads as well and
when it comes to NVRAM, (49:24) NVRAM will deal with only write requests and we
have a PAM, right, PAM or flash cache, (49:31) which will deal with only read
requests, okay, so don't get confused between these three components, (49:41) okay,
if you don't have any questions, then I'll proceed with the last component (49:45)
in our controller, that is flash module, we'll call it as flash module, boot
module, (50:08) so this is a component, which is very, very important to the
controller, (50:15) okay, so before that, I'll ask you a question, like do you know
where our, I mean the operating (50:23) system in our laptop will be stored, in
which place our operating system will be stored in our (50:31) laptop, C drive, no,
C drive will be having a supporting files of your operating system, (50:45) so C
drive, BIOS, BIOS, yes, yes, BIOS, basic input output system, yeah, when you hit
the power (50:52) on your laptop, first it will trigger the BIOS, from the BIOS, it
will trigger the operating (50:58) system and it will load the operating system to
the C drive, that is how it will work, the same (51:03) way, we have ONTAP, right,
ONTAP will be stored in the flash module, okay, so the actual ONTAP (51:13) will be
stored in this flash module only, again, this flash module or boot module, whatever
it is, (51:19) will be, again, it will be divided into two partitions logically,
okay, one will be the (51:25) current partition and another will be in the previous
partition, current partition and (51:30) previous partition, but these roles will
keep on exchange, for example, let's assume that, (51:42) let's assume that, I have
9.1 here, okay, I have a 9.2 ONTAP here, okay, now, (51:57) this is the current
version, this is the previous version, whenever I am planning to upgrade my (52:07)
ONTAP from 9.2 to 9.3 or 9.4, what it will do, it will not disturb the current
partition, (52:16) because with the help of this partition only, my controller is
up and running, so what it will do, (52:22) it will overwrite the ONTAP version in
previous partition with 9.3 or whatever the target version, (52:30) after that, the
controller will be rebooted, whenever it is booting up again, what it will do,
(52:37) it will go through the flash module and it will identify the latest version
and it will mark (52:45) wherever partition we have 9.3, right, it will mark that
particular partition as a current (52:50) partition and it will make the other
partition as a previous partition and it will boot with 9.3, (52:56) that is how it
will work, why we need a two partition, because as I told you, (53:01) if you are,
I mean, if you have only single partition, then what you need to do, I mean,
(53:06) it has to overwrite the current one, right, ONTAP, which it is running on,
so it might impact that (53:15) and one more thing, for example, I have installed
9.3, later I found that, no, I don't like the (53:23) features, I have a lot of
bugs in 9.3, which are creating a lot of issues to me or my environment, (53:29)
what I want to do, until they fix those bugs, I want to go back to my old operating
system, (53:35) so what I can do, I can boot with my old operating system as well,
that is the main purpose of having (53:44) two partitions in boot module, when you
see, when you log into the NetApp controller and (53:49) there is a command, which
I will show you, when we are doing the practicals, if you run
that, (53:53) then it will show you both the ONTAP versions we have on the
controller and it will show you (54:00) in detail information, okay, is it clear?
Yes.
Okay, yeah, that's it guys, this is the (54:09) architecture of NetApp controller,
if you have 24 controllers, 24 controllers will be having the (54:16) same
components only, only thing is, they may vary in sizes, like the PAM size is
different, (54:23) cache size is different, environment size might be different,
that's it, based on the hardware (54:26) model only, okay, if you don't have any
questions, then we'll stop the class for today, (54:33) just go to the video, if
you do, if you have any questions or concerns, ask me or if you want me to (54:39)
repeat the class one more time also, I'm fine, because this is a very very
important, like if (54:43) they want to ask you in depth on basics, they'll touch
you on architecture only, controller (54:49) architecture or they'll ask you what
is CP, they'll ask you what is, how write request will be (54:54) processed within
the controller or how read request will be processed within the controller, (54:58)
what is the purpose of environment, like that they might ask you these questions,
like trust me, (55:04) the experts who are already working also might be not able
to answer these basic questions, (55:09) because we know how to do everything, but
we don't know what is happening in the background, (55:15) most of them, that's
why, okay, that's why I have joined, (55:19) okay, all the things I'm working on,
it upgrades and everything, but there are a lot of things, (55:26) it's not clear
to me and one more thing, Naveen, I just wanted to ask, (55:30) when we have
multiple controllers and this, the ring get changed, so that will be discussed
later (55:38) on or, yeah, yeah, everything will be covered, don't worry, okay,
okay, okay, thank you, I'll (55:45) share this diagram with you, I'll upload the
diagram also along with the video recording, (55:50) okay, okay, thank you, have a
nice day, thank you, bye.