 screen too. Go ahead. All right, so let me just let me see if I could do a little bit of Philip's background while we're waiting on on him to actually show up. So I don't know if he's explained any of this but let me let me try for him. The the primary reason I'm here and I'm going to what I'm going to be talking about is a brand new storage management standard coming out a little bit that we've been working on for a couple of years and I'll be giving a bunch of background and showing some a bunch of what that looks like and some of the tools and things around that. Primary rationale for that is that you guys have been working on the CSI layer and while that gives you kind of access to standardization for creating containers it doesn't really give a way to go down to the next layer and actually configure the storage and so what Philip brought me in to do talk a little bit about what's going on elsewhere in the you know in in the data center enterprise management ecosystem standards world around how to you know approach that part of the system and so that's kind of what I'm going to be talking about. So I'm Rachelle Alvers. I work at Broadcom and making sure I have the right set of slides here since I thought I deleted that but that's okay and I'm also the chair of the technical work group in SNEA. SNEA is the Storage Networking Industry Association. It's been around for 20 some years now. We develop standards in the storage space. We partner with the desktop or the DMTF which develops standards for largely servers and networking and other parts of the the ecosystem for you know end-to-end management and so standard disclaimer slide everything subject to change without notice everything you want to see and find around what I'm going to be talking about SNEA.org slash Swordfish. So you know SNEA we have it's a worldwide organization like I said we've been around for a long time and has a lot of companies involved. So what Swordfish is we have had storage management standards for a long time they've really been focused on traditional storage management and enterprise data centers and so what we've started to do and we started this three two three years ago now so this is really something that the standard has been developed and we're just starting adoption. I'd like to highlight you know where we are you're not going to find a lot of Swordfish deployments out there where you start to see is a lot of people that have you know POCs and things like that we have actually this week at Flash Memory Summit the first you know first shipping implementation being announced. But what Swordfish is is kind of a new standard that's actually shifting away from just focused on enterprise data centers towards something that we're expanding to be more well I hate the term but more modern but and also something that we can put on on on on on storage devices and infrastructure that goes into broader environments so not just DAS not just SAN but infrastructure that goes into converged hyper converge hyperscale you name it right so you know all of the you know the product that's coming out this week is an NBME over fabric device as an example so clearly not enterprise SAN products. So what I'm going to do is you know just really kind of give you an intro to the Swordfish, the concepts you know what kinds of things it covers and also talk a lot about you know the tools and the ecosystems so if you can actually go play with to get a sense of it not going to go in depth we can come back and if anybody's interested in that and talk more about that at another time. So you know what I've actually talked a little bit about this already what were the drivers you know there were drivers about you know what were things that we did wrong with the previous ones they were very vendor centric we've shifted to make Swordfish very client centric very customer centric this time so very use case centric in terms of how we built the API it doesn't include every function from every vendor or every possible attribute from every product and again you know we've also moved to a more DevOps centric storage is not necessarily managed by storage you know dedicated storage managers anymore so we tried to take that into account. So what did we do what we actually did here was we took we didn't start from scratch we find that's kind of a silly approach and takes a long time we started from existing base of knowledge one of the things we did and this has been it's not a you know a property based system it we moved to a class of service based provisioning and monitoring API we so I'll talk more about that as we go but that's a very key point this basically allows you know a much richer and much more abstract way to provision systems you don't have to think about all of the the low level properties and and you know know all of the all of those low level details anymore so covers all of the you know things you would expect block file and object we're we're not focused on you know tape and all of those kinds of things in this set of APIs and you know how do we do that so again not start from scratch the DMTF and server folks have been looking at some some similar types of challenges so in the server management space they had a whole proliferation of management standards that largely were being used by the server vendors to you know for proprietary you know and server base vendor based products smash and dash and then IPMI and IPMI has a whole set of challenges itself so you know Redfish was had started as a consortium among the server vendors but it had a whole bunch of stuff we need and frankly when you build a lot of storage management a lot of storage systems are built using the same components you use to build servers so we had a lot of the stuff we wanted so we said well we'll just build on top of that we're going to reuse literally reuse everything swordfish is an extension it we we've leveraged their protocol 100 we do not deviate from their protocol specs we extend it and anything that's a shared component is a shared component we extend it if we need to but we do not change it we may restrict particular pieces of it but we do not fundamentally change the components okay and so this is one that I thought you guys might also find really useful since you know if you don't have any exposure to this kind of stuff you know seeing you know who's this is the list of who is currently actively participating between the two groups there have actually been a whole bunch of other companies kind of coming and going from working on this stuff at various points this is the kind of the current list you know one of the things that's interesting is Microsoft used to be participating in both and it's now only on the server storage side which sounds weird you might think why you might expect them to be on the server side and the storage side you know things like HP Inc they're actually highlighted or italicized here because they're supporting Redfish they're sponsoring it but they're not actively participating could kind of means they're throwing money in and they're a consumer of it but they're not actively driving this back there have been I would say probably I I'm going to say at least 20 or 30 more companies that have actually been members and participating and contributing that have been on this list at some point that have you know dropped off or and there when I was creating this list yesterday I think I added about six or seven new companies from the last time I updated this list about three months ago so there's a lot of interest there's a lot of companies that have been participating Redfish is about two years older than Swordfish and there they actually do have quite a few shipping implementations all of the major server vendors HP HP Enterprise Cisco Dell Lenovo and I missed uh let's see uh I'm missing a couple Erickson um let's see there uh somebody else have had implementations one more I'm spacing have had implementations since about 2016 and I'm iterating on those so there's quite a bit of momentum in the market towards this they started with simple implementations and have been driving those forward I'm talking kind of fast that's partially because I've had a fair amount of caffeine this morning partially that's just my normal speed but feel free to you know you know raise your hand in zoom or whatever if you have questions because there's I'm going through quite a bit of a background and stuff here and I'll get through quite a bit of information but feel free to interrupt it anytime if you have questions okay so so what's in in the system and how and how do we build it so Swordfish includes you know I've already mentioned block file and we will cover object we cut we have object drive in here now it will be really easy to extend the object we just haven't had anyone any companies step up to say we will do the detailed modeling for that but we we fully intend to cover object we have a lot of interest in in object but not to the extent that anyone has stepped up and said we'll we'll do that modeling for you so block as I mentioned provisioning with classic service controls volume mapping and masking replication you know capacity and health metrics pretty much everything you'd expect in a complete you know full a full api set and file system the way we did file systems is actually really I think really nice we basically took the block and said it's going to be exactly like that except with just two new schema on top so we add the file system and file share so it is identical infrastructure there's no deviations it's not it's not a divergent model at all it just you layer file system and file share on top of it so it's a it's a very clean very clean file system implementation okay and so then how does it work let me actually make this one bigger so that oh hang on let me just okay um so because otherwise the boxes are really small so how does the the whole thing structured so as I mentioned we we start with redfish and the there's different ways to do rest the this model uses a a fixed route of everything starts with flash redfish slash B1 and we call this the service route and so in the service route a server is broken down and there's actually it's gotten a little more complex over time but that basically works breaks down into the collections which are think of these as you know collection is the term for an array of the of objects so this is the array you know a group of a systems group of chassis a group of managers the managers are either a physical or logical manager so for a server it's like a BMC the system is the logical view of the system the chassis the physical view of the system you'll see some things in there they're like why is that there just how a committee decided it so you know that keep that in mind and so and then there's a set of services over here so session service account service event service log service there's also things for schemas there's been some bunch of enhancements around tasks job services privilege mapping and things like that so you'll see a whole bunch of other services there and in the versions today this is just kind of a relatively simple representation and then for each instance you'll see you know collections of things like processors and my things got truncated here for some reason processors disks nicks all the kinds of things you'd expect to see represented in a in a system and then as chassis the decision was made to make you know power and thermal collections and information down in here so that's kind of how systems modeled so what we did when we went to add swordfish we said well yep you can have all of those things in and storage as well so we're just going to keep all of that and extend it so what we did was extended that we have two kinds of models for two you know two fundamental ways you can construct a storage system the first one is think of this is how you might model a and there Phillips on Philip I did your introduction of man probably rather badly and what we were doing so the this is what we call you know the hosted service configuration this is really kind of how you would model a lot of things like an external storage system or even a software divine storage where you have all of this stuff down here would be you know the physical infrastructure or the logical infrastructure that you would host your host your storage or your storage system on and then these two pieces the purple stuff is all of the new swordfish part and so the storage system these really break down into a storage system and a storage service so a storage system is really a logical system this might be a physical controller or or a virtual controller and it's modeled so the same way you have a processor down here this is actually a logical instance of a system so instead of a processor just you have a controller and discs and nicks and I'm getting a notice that my internet connection is unstable so let me know if I start to be able to problem or not and then but really that the core of swordfish is in this storage service this is where we have all of our classes of service that we talked about that I've mentioned briefly and and things like storage pools and volumes or files or replicas or endpoints and you know volume you know and all of these things which is really when you go to manage your storage the core of it and so again these are collections so you can have multiple instances of these same way you can have multiple controllers and I said I mentioned two configurations like I said this would be you know typical external storage or this could be you know software defined all that kind of thing I'm waiting at my screen which you can't see the the additional one would be well what about something like server attached or jboss or something like that well we have another model and we call this the integrated service configuration and this might be one where you might have a system with a storage controller and then and that it you know plugs directly into a system and then you instantiate a storage service from that and so then we have this basically this alternate model and so it's instantiates a little bit more simply but where you have kind of a physical this the simpler physical storage controller model but then you still have exactly that same the same the ability to instantiate those same storage services um and so um you know from a client perspective you know in either model they may or may not be interested in any of those that storage system um or storage controller depending on what their use cases are they may only ever be looking at the storage services but these are you could see these are exactly that same that same storage services okay um any questions on either of that any of that so far? Hey Ruxia just one question I see uh BMC is showing here I'm just wondering it's I mean this is the one company right but I'm not seeing other companies showing in this oh no BMC actually stands for a baseboard management controller okay yeah so this just you know an i low or an i drag or whatever um or for um a storage implementation um you know it this could actually be um a uh embedded management controller or something like that or if the system doesn't have it it could actually be pure software um it's just a kind of a representation of okay not not got it I was it was a one yeah thanks okay so um if we want to actually look at you know what swordfish things might actually look like we've we put the the twigs both redfish and swordfish work with mock-ups and so we publish our mock-ups um these are all just static um we publish our a bunch at swordfishmockups.com and so you'll see them at swordfishmockups slash redfish slash b1 um so what I'm going to do is actually switch over my slide set actually has a few samples in here too um but um what I was going to do since a lot of times I can't actually I'm only allowed to work through PowerPoint so um but I'm I don't actually have that limitation today um so I have to like just do screenshots but so this is our mock-up site and um you know pardon the crappy website this is you know I threw it together quickly and uh I haven't bothered to go back to it but this basically describes you know all a bunch of our different configurations so we have we actually have five different systems out here but one of them is we have that hosted service configuration it's kind of like here's a system that's got a whole bunch of different you know kind of all the different permutations in there and then one that's integrated service configuration um and then one that's got a file service in there and it kind of describes all of them and then um so if we go over here and it's kind of tiny um you know if you just go to flash drive to slash v1 here's basically what a service route might look like see you guys this one so you can see you'll see flash systems and storage systems storage systems will just alias to the subset of things that in systems that are storage systems um this is kind of a weird the mock-up systems is a little weird because in a real system you'd probably only have one depending on the configure you know configuration if it's a host-based managed storage storage manager you might have multiples but in a lot of systems you'd only ever be seeing the single system you're talking to and then you have chassis and managers and then some of these services like tasks it's actually an account and events um and so that's just some of the oh no copyright is that all right not fix that copyright um so if we navigate down through you can either kind of just type them all directly you know and navigate around this way or you can use your favorite rest client um and you can see these around so or you can use you know go over here and you know you just use your favorite rest client the mock-ups are oops well that's odd all right well I'll go the other way since it's clearly working over here and not there um but we can just kind of wander around through as with any rest api you don't actually need to know the schema so this is that large configuration and you can see all of these various pieces so what I'm actually going to do is I'm going to go back over and wander through the isc configuration this is basically a server attached storage configuration and this is the storage service connected to it so you can see it actually shows that I have you know classes of service defined storage pools volumes and drives down here that it talks about capabilities what these capabilities are is just defines what capabilities are defined in this service that I can use to create class lines of service and then eventually classes of service that's how classes of service work I'm not going to go through all of that but what I will do is actually just show what classes of service are defined so I have two classes of service what what I've actually got configured on this system is all I use is it's a fairly simple configuration what I use for classes of service is basically I just automatically sort my pools based on drive types that's all I did in this particular mock-up so if I go down to my storage pools it basically sorts by SAS or SATA and I've named them that way so I've got a SAS you know a SAS pool an RAID 5 SAS pool a SATA pool so I've used underlying capabilities of my system automatically configured so that I can so that I can configure which which you know automatically segregate my system so you know that's a look there's a there's a lot of abilities that we've gotten mapped into classes of service this is one that to me was just fairly obvious is like you can take something that you know the system's already capable of some you know some policy or property in this case it's an IO connectivity capability and map those into classes of service clearly you can do performance but you can also do connectivity you can do there's there's you know five or five different sets of capabilities that you can use this is this is one that just is a really easy one to explain so I like to use it as it helps people visualize classes of service pretty easily okay let's see so one of the things we can do here is you know you can you know navigate around and and you know just look we can at this one we could just kind of look around and see what's how the systems configured this one happens to be fully consumed but you know if we wanted to go through and see if there was space to do additional configuration we could wander through one of the other systems and say let's go look at this storage pool and see if there's any space left to be able to to go in and create another volume so I go down here and say huh there's capacity consume nope there's no space left in this pool so I can't create another volume there maybe the other pool has some and well look I can you know I can do some quick math here and say this one actually has some space so here's I can use this pool to create another volume so that's how you could actually just navigate around depending on what you're trying to do and that's just kind of a real quick you know view of how you can you know without knowing anything about the system you could move around and and and actually try and try and figure out something really quick to do okay so that's that's a little bit about about Swordfish and the API even a little bit about the classes of service so let me pop back out of that any questions on that or anything you guys want to see I can toodle around a little bit here if there's anything specific you want to take a look at you shall have a question uh so by reaching this back it's not clear to me what are required and what are not required so you will want to implement something yet okay so that's actually I will perfect lead in to my next section here so oh I'm gonna get down here um so one of the things we're adding in there's actually multiple places if you if you just look at the schema there's actually very little required um and and the spec adds a little bit more onto that but the way the real way to figure out what you actually what you actually need to implement is through um what we call what we're calling profiles and we're we're just getting to this um so the profiles are sets of required functionality based on features so what a client will actually do is say um you know what what features do you support and we'll advert you know applications will or implementations will advertise features they'll say I support block discovery events performance provisioning and you know basically be guaranteeing that and then the actual there's there's a whole profile language will say you know in order to say that you do that um let me just give like the discovery example that basically translates to for that what that means is that for every object you support get of not just the object but every property on that object and then for those configurations I just talked about for hsc or for the isc configuration that means there's a specific set of objects that you will support um and so you support get on uh you know a storage service a storage pool volume blah blah blah down the list and so there's some set of those that you not only have to have you know if you have that object you have to support this so um like you have to have a volume collection and doesn't mean you have to have any volumes created yet but you have to support having them you have to support the ability to create them does that make sense and then so for basic provisioning you have to support doing posts and deletes on that volume collection for so if you say I support basic provisioning on block you have to support um uh post and delete on on the volume collections you have to support being able to create you know so there's a hierarchy there um but that's that's how um that's how we both advertise that and um and uh so the client can come in and say um what do you support what is this what is this implementation support and it says I support basic provisioning for block then you know that that's going to mean that the implementation is guaranteeing that you'll be able to allocate volumes um and so there's a whole you know hierarchy of stuff that the client that the implementation is actually doing behind the scenes um but um that's that's how you basically um that you know that's that's where all of that you know what do I actually have to do comes in so the client gets this view and then there's a whole language and you know what this translates to for one of those for one of those configurations that the implementation will see um so they'll have we're we're developing the tools around that now that basically says this is what this means you actually have to implement and then there's going to be some tools to help check help the implementations check and verify that they're actually able to advertise these things um so that that's um we're hoping that and we're we're right in the middle of getting ready to get because it's a relatively complicated you know chain of of uh you know x means y means z all the way down um so that we can advertise these things um what we've this is something we learned we've we've gotten a lot of feedback from our clients over the years um SMIS had profiles as well and would advertise but um I think the count was 180 some profiles that they would advertise and so what we're trying to do is move to this much simpler model that says we advertise right now you can see my current proposal and this is the proposal that I should I should put a disclaimer on this this is the proposal we're about a month away from having um having a whip go out work in progress go out that defines all of this um that says what we will advertise you know this matrix of a lot you know these services with these features and we want to start at this list of about eight it'll probably grow from there um and then you know this maps to you know the details of the you know exact objects for the various configurations um so we have those profiles ready by the senior conference in September right we we hope so yeah um we're we've been uh Phillip how long have we been discussing the profiles and and the approach since about January um I think we we hope we hope that we're we're putting together some some presentations and some alignment around it now that we should have the whip of the concepts and everything um we're trying to get that done this month and have that out before sgc and then we'll need to be developing the tools to to validate all of that so we're we're hopeful that we can have that done this month I may be overly hopeful so Phillip I asked you a question and then I talked right over it so you asked me a question about how long we've been working on it yeah well and yeah I think I think it's been about yeah starting about January I think so okay yeah so we would be very interesting this because I'm working on open sds and we are defining our profiles based on soil fish so if you guys are actually defining profiles I would like to definitely like to take a look in the leverage that yeah question about that are your profiles the same thing or your profiles classes of service because I always got confused moving back and forth oh yeah so we are actually probably p can choose so may not be exactly what you guys are doing so because we we use the some of their um the capabilities like the like the one that you're showing already the i will connect the like yes actually line of source our connected line of service those those things yeah so the classes of the classes of service is what would be used for determining storage scheduling right trying to figure out placement and and and you know what what the services that are customers asking for on a provision request right whereas profiles are just identifying you know what features and capabilities the the device is capable of handling right there's a slight difference between the two okay yes definitely like to see how you are defining those okay see as the class of service stuff is all uh has been defined for quite a while the uh the profiles we have the the profile language um and then it's the feature set is we're trying to lock down right now on the feature set and then map the between the feature set and the profile definition so the profile definition will be kind of the provider side and the feature side the feature definition side will be what we advertise to the clients and that's really separate from the class of service stuff yeah the i think that's the distinction is that the class of service stuff is really around um you know if if i got a csi request for um a particular volume of a particular set of uh characteristics uh i would use the class of service uh to figure out you know where i'm going to place that whereas the profile is kind of identifying what this particular swordfish implementation is capable of doing right am i correct yeah right this is how a client says you know determines what functional yeah basically how capable the system is yeah are they are they capable of local replication remote replication you know is it how how advanced is the system and you know we may actually add at some point you know um features that advertisement of features around how advanced the class of service capabilities they have to but that will be in the next round like i said we're trying to keep the list of profile um things small but if we have um this and this is kind of targeted our classic clients at this point so if we have other types of clients come in that are like you know want to know more in in kind of a different direction then we can add those those kinds of features as well okay let's see so the other thing i wanted to kind of show is a little bit about the tools and infrastructure i mean i showed the the mock-ups right so we have the mock-up site the other thing i wanted to kind of show is a little bit about some of the stuff we have developed so that folks can go and play um because that's really what we all want to do right uh so one of the things we have um so that you can actually go play with swordfish is we have a swordfish emulator um so the and and these are we have four basic sets of tools here so one of which is the emulator you can get that at github on our open source github site it extends the redfish emulator the redfish emulator is not fully dynamic but the swordfish emulator actually is so i have an instance of the emulator here um and i it you can basically do put patches um posts and everything too it it's not intelligent it's not going to be like a real system but you can you know manipulate it quite quite a bit um and one of the things we've actually we actually have going on is we have a researcher down at texas tech who has taken and is building a virtual data center in containers and they are we they'll have that on display at sdc and we hope to have an instance of that stood up soon in our tech center in our this is a tech center as well um but they're hoping to build an emulated scale out data center um with uh you know large scale storage system so they'll have both isc configurations as well as hsc style systems and have some you know small a bunch of small configurations as well as some extremely large emulated storage configurations so some with you know multi thousand volume multi you know hundreds of thousands of drives thousands of volumes kinds of systems in containers so simulating a you know very large data center data centers all built using the emulators um and so that's that's available um works reasonably well um we've been finding and fixing bugs but it it um is is available uh we also have the sortfish web client which i had started on my system and now i don't see the thing for so maybe once again i will um um and the other one that i wanted to show um is we have these two sample integrations we built just to give people kind of a sense of the things you could do and so one of the i was going to show i'm just going to show the power bi one because i have that up and running on my system we basically built two different dashboards we use power bi and datadog because they have largely because they're two different kinds of potential integration spots um the the uh let's see i'm gonna start i'm sorry starting the basic web client up while i'm at it um the uh so power bi basically um this isn't sorry i don't have this loaded completely this is the working pane um but the power bi dashboard um power bi is kind of a point in time snapshot so what we built here was basically a uh this this view basically shows um kind of a what what you might want to look at from a point in time so this one basically um built talking to emulators um we have all the documentation says how you can either recreate this one you can basically bring this one up and just change it um or you can documentation tells you how to recreate it completely what this one does is it was talking to an emulator that had four storage services on it um and you know just a snapshot view of you know what's the consumption uh capacity consumption across them and then it has these um sub dashboards of the various storage services and so if we go look at one of those sub dashboards what you get here is you know a kind of a drill down into that so you've got here's the number of storage pools file systems in this one because this was file service some consumption you know utilization across the file systems and storage pools this again more capacity information and then you can actually go drill down into um into that and then one of the things that Swordfish has is a threshold user-setable thresholds and so this actually shows these this one had them set at 60 and 90 you can so it has an overlay of these so you can just kind of see where these are across this particular this uh across this particular um file file system hasn't hit either of these but uh this one has weird data on it loaded weirdly um and but you can see it you know if it hit one in the middle it would show the overlay there um in Datadog what we actually have is uh the um it's a trending over time so we've used the same kind of data this is just point in time snapshots so you've actually what we've actually done is built up some some um trending over time you know capacity triggers so and integrations that people can use out of the box and there's sample code for all of these online um what we've also got is the sample a basic web client will automatically talk to uh any of the uh any Swordfish service I'm just going to talk to my emulator here and um it'll just bring up and display that same uh service route here and then we can go down and navigate around it's also got the ability to I've actually added you can I can I can add storage services I can use the ones I put in before I can just say delete that one back into storage there we go deleted that one um so I can modify properties let me go into an actual object and modify its properties so I go down here and I can you know rename things so it's a basic client just sorts things out but makes it a little bit easier to look at look at systems rather than navigating to rest clients these are just kind of tools to help people get started and play around with with the systems um so I just hit the top of the hour uh Philip I think we had a couple of wrap up items yeah yeah so uh trying to figure out we're um what what kind of you know the whole reason I I wanted to bring this here was that I knew that um uh people were building uh storage management solutions for clouds right I mean that's what the the CSI effort is about that's what open SDS is about um and I want to make sure that there was uh knowledge of of the standards work that's going on and that um you know we see a lot of activity by um almost all the major players in the space and that's so that the we want to make sure that as you guys are developing these solutions you're aware that these this uh swordfish and redfish standard is coming coming towards you right from uh from the major vendors and array vendors uh in play in the industry today and that you know you should take take into consideration the standard and and uh and you know if we can help with anything uh help explain it you know we're we're happy to do these presentations or do um do anything we can do to help assist people to use it so uh let us know if there's any questions or anything we can do um to support your development efforts and I think that's it is anybody there yeah yeah thanks that was a good presentation thank you all right all right if you guys have any follow-up yep if you have any follow-up questions just let us know thanks Michelle and Philip thank you yeah bye bye