ImplementingSoftNASCloud withdocker November2014 SoftNAS'Cloud'with'Docker'provides'simple,'on:demand,'persistent'shared' storage'for'devops'striving'to'obtain'continuous'delivery/integration'and' applications'to'scale
Table*of*Contents* Introduction...3 Overview...3 WhatisNAS?...3 WhatisSoftNAS Cloud?...3 WhySoftNASCloud?...4 CommonUseCases...5 DockerContainersvsVirtualMachines...5 Firsttherewasvirtualization...5 Containersandhowtheyaredifferent...5 TheStorageChallengeforContainers...6 Implementation...7 EaseofApplicationDeliverywithPersistentSharedStorage...7 SettingupaDockerHost...8 ContinuousIntegrationandDelivery...10 DeployApplicationstoScale...11 ConfigurationOverview...11 ConfiguretheBeanstalkDockerHost...12 ConfigureElasticBeanstalkwithaDockerContainer...12 CreateDockerrun.aws.jsontoconnecttoSoftNAS...13 CompressFilestouploadtoElasticBeanstalk...14 ConfigureElasticBeanstalk...15 HighAvailabilityandReplication...18 IntroductiontotheAPI...20 HowtoGetStarted...21 Copyright 2014SoftNAS,LLC AllRightsReserved
Introduction* Overview* Dockerisanopen^sourceprojectthatautomatesthedeploymentofapplicationsinsidesoftware containers,byprovidinganadditionallayerofabstractionandautomationofoperatingsystem^level virtualizationonlinux.dockerenablescontinuousintegrationwithdevopsfindingvaluethrough simplicitytobuild,ship,andrunapplicationswithincontainers.dockerenablesseparationofconcern; developersplaceapplicationsintocontainers,operationsrunthecontainers.dockerisoneofthemost activefreeandopen^sourceprojectstoday,withmorethan500contributorsoverthelastyear. ThiswhitepaperwillhelpyouunderstandoneofthemostpopularcloudNASoptionsavailableforthe integrationwithdocker,thesoftnas CloudNASFiler.ThisdocumentdescribeshowSoftNASCloudcan beusedtoprovidepersistentstoragetodockercontainers.itwillpayparticularattentiontosolving Dockerskeystoragechallenges. What*is*NAS?* NASisacommonITtermforNetworkAttachedStoragethatenablesdataandfilesharingusingpopular protocolslikenfsandcifs/smb.iscsiistypicallyassociatedwithsan(storageareanetworks).nas storagesystemsthatsupportnfs,cifs/smbandiscsiaretermed unified storage.softnascloud providesunifiedstoragedesignedandoptimizedforhigh^performance,higherthannormali/oper second(iops)anddatareliabilityandrecoverability.italsoincreasesstorageefficiencythroughthin^ provisioning,compressionanddeduplication. What*is*SoftNAS *Cloud?* SoftNAS isasoftware^definednasfilerdeliveredasavirtualstorageappliancethatrunswithin popularpubliccloudenvironments,suchastheawsec2,microsoft Azure,VMware vcloudair andprivatecloudsrunningvmwareesxi/vsphere.softnasprovidesenterprise^gradenasshared storagecapabilities,includinghigh^availabilitywithautomaticfailover. Nothingismorecriticaltothecontinuityofyourbusinessthanyourdata.Likethebloodinyourveins,it hastobesafeandavailable100%ofthetime.softnasoffersthemission^criticaldataprotectionand high^availabilityrequiredfornon^stopoperationofbusinessapplications,websitesanditinfrastructure. SoftNASrunswithinthecustomer sownhostsand/orinthepublicclouds,andprovidesano compromisesafetynetforbusinessinformation. * Unlikelegacystorageappliances,SoftNASofferstheenterprise^gradedataprotectionandhigh^ availabilitycapabilitiesrequiredfornon^stopoperation,withoutthehighstorageacquisitionand maintenancecosts,andwithoutthecomplexitiesandassociatedspecializedstorageskills. Insteadoflockingyourcompanyanddataintoaparticularvendor sproprietaryhardware/software storageappliance,softnasprovidescustomerswiththesamefreedomofchoiceforstoragethat customershavecometoexpectfromotheritinfrastructure;e.g.,servers,switches,firewalls.and becausesoftnasleveragetherichnessofcloudplatforms,thefullrangeoffeaturesandhardware^ independentvirtualizationnowapplyequallytostorage,providingthesamebenefitsforstoragethat Copyright 2014SoftNAS,LLC AllRightsReserved
Copyright 2014SoftNAS,LLC AllRightsReserved customersenjoytodayforservervirtualization. Why*SoftNAS*Cloud?* WhyshouldDockerusersconsiderSoftNASCloud? SharedStorageforDockerapplications Manyapplicationsinvolveuseoffilesandfilesystems Enablesrapidscale^outDockerclusterswithhigh^availability Full^featureNAScapabilitiesforDockerapplications Easeofuse Managedataforallcontainersinacommonsimple,'yet'powerful'storagesolutionfor Dockerapplications QuickandeasytoconfigureinminutesforITadministratorandDevOpspersonnel withouttraining Availableon^demandtomeetITandDevOpsagilestorageneeds Builtinsnapshotsandwritableclonesforthestoredcontaineroutput;build test validate repeatonclonedproductiondatasets Rapidrecoveryfromdatacorruptionordeletionevents Easytosetupandsecurelyreplicatelargeamountsofdataacrossdatacenters, platformsandclouds,deliveringanalystsresultsfrombigdataanalyticsto consumersondifferentplatforms Storagepoolssupportdynamicadditionofstoragedevicesandthin^provisioned volumeswithoutworkloadreconfiguration Notrainingorspecialstorageskillsrequired Builtuponfamiliar,standardLinuxandZFSopensourcetechnologies FlexibleopenarchitectureandAPI senableextensibility Nolock^inofcustomerdataduetoopenarchitecture Non^disruptiveonlinestorageadministrationandmaintenanceagility Agilereconfigurationofstorageonlinewithoutdisruptingproductionworkloads Securityandavailability EnhancedsecuritybuiltintoAWSforEBSandSoftNASforS3,AWSistheleading publiccloudfordockeradoption Makescloudstoragesaferforbusiness Protectsmission^criticaldatainthecloud Deliversstorageuptimewith99.999%reliabilityw/dualcontrollers (5minutes/yeardowntime) Increasesapplicationperformanceandprocessingspeedsviafasterstorage performance Scalability Accesstoupto16PBofS3^backedclouddiskstorage Accesstoupto154TBofEBSfromeachEC2instanceassharedstorage Blockreplicationscalesefficientlytohandlehundredsofmillionsoffilesand directories Securelyreplicatedataacrossanyplatform,datacenterorcloud
Copyright 2014SoftNAS,LLC AllRightsReserved Common%Use%Cases% Thefollowingcommonusecasesareaddressed. Easeofapplicationdeployment ContinuousIntegration/Delivery Distributedapplicationdeploymenttoscale Docker*Containers*vs*Virtual*Machines* First*there*was*virtualization* Avirtualmachineisamethodinwhichamodernservercanrunmultipleoperatingsystemsonthesame pieceofphysicalhardware.thereareseveralwaysinwhichthisisaccomplished,buttheunderlyingidea isthesame.utilizehardwarepowermoreefficientlybyaddingmorethanoneoperatingsystemontothe samephysicalserver.therearenumerousbenefitstorunningaserverinavirtualizedenvironment.here areafewofthekeypoints: " Redundancy:Theoperatingsystemisdetachedfromthehardware.Thisallowsacertainamount ofportability.i.e.,ifonepieceofhardwarefailsitisrelativelyeasytomovethatoperatingsystem toanotherpieceofhardware. " Scalable:Alongwiththeportability,virtualizedserversgenerallycanbescaledalittleeasier. Meaning,becausetheserversoftwareisnottiedtoanyhardware,it seasiertoaddadditional serverstohandlealargerworkload. " Cost0Savings:Thisisprettystraightforward.It snotnecessarilytobuymultiplephysicalservers. Inthepre^virtualizationeramultiplepiecesofhardwarewerenecessarytosatisfydifferent computingrequirements.foranemailserverandacrmserver,wouldhaveverylikelybeen deployedastoseparatehardwareservers. Nowwithabasicunderstandingofvirtualizationandwhyit sbeneficialletsdiveintocontainers. Containers*and*how*they*are*different* Inshort,containersfurthervirtualizetheunderlyinghardware.Asdiscussedearlierinatypical virtualizedenvironmentthereisonepieceofhardwarewithseveralcomputersrunningonitandsharing resources.eachoneofthevirtualizedcomputerswillhaveitsownoperatingsystemsandresourceusage alongwithit.inacontainerizedenvironment,onlyoneoperatingsystemwouldberunning.withinthat singleoperatingsystemiswherethecontainersreside.thecontainerseachhavethenecessarysoftware toruntheapplication.ratherthanhavingtheoverheadofalltheoperatingsystems,alltheresources beingareusedbyoneunderlyingsystem.therestofthecomputingpowerisnowavailabletothe applicationitself.it simportanttoknowthatcontainersdonothaveaccesstoothercontainers.sofroma securitystandpoint,containersarenomoreorlesssecurethanastandardvirtualserver. Whilevirtualizedserversdosomethingsmuchbetterthantraditionalhardware,therestillisroomfor improvement.containersbringadifferentapproachtovirtualizationthatwasnotpreviously " Ease:Withacontainer,thereisonlyoneoperatingsystemtomaintainversusmanymany
virtualizedserveroperatingsystems.also,applicationswillbehavetheexactlythesameacrossall containers.meaning,containersdevelopedandtestingwithinalocalcomputercaneasilyan successfullybemoveduptoacontainerinthecloud. " Speed0of0scalability:Onceanapplicationisrunninginacontainer,itcanbeduplicatedextremely easily.sincethereisnooperatingsystem,onlythesoftwareneedstobeduplicatedforthe container.thetimeconsumedforscalingchangesfromminutesandhourstoseveralseconds. " Efficiency:Withouttheadditionalburdenofrunningmultipleoperatingsystems,eachpieceof hardwarenowhasextraresources.theseresourcescanbeusedtooffermorepowertothe application(s)thatarerunningwithinthecontainers. The*Storage*Challenge*for*Containers* Whilecontainershavesomeamazingandsimpleadvantagesovervirtualizedservers,thereare challengestoovercome.chiefamongthechallengesisstorage. Dockerstoragelimitations: " Thecontainerhasephemeralstorage,whenthecontaineristurnedoff,dataislost " Containerdatacannotbeimportednorexported " Containerdatacannotbebackedupandrestored " Containerdatacannotbestoredbasedonstoragecapabilities;SSDforhighIOPs,SATAfor inexpensivelargecapacity " Itsnotpossibletospecifyvolumestobeusedfromoneoldcontainertonewcontainer " Itsnotpossibletomanagevolumesafterdeletingthecontainersinwhichtheywereattached " Becausecontainersareintendedtobelightweight,itisnotfeasibletoimplementsharedstorage withineachcontainer " Whilesomeapplicationscanworkaroundsharedstoragelimitationsusingobjectstorage,there remainmanyusecaseswherefile^basedstorageandsharedstoragearerequired. Copyright 2014SoftNAS,LLC AllRightsReserved
Implementation* Ease*of*Application*Delivery*with*Persistent*Shared*Storage* WebdevelopmentwithDockerutilizingSoftNASCloudsolvesstorageissues.Dockerprovidesrapid creationofubiquitousdevelopmentenvironmentsonthefly.softnascloudprovidescontinuous persistentsharedstorageexpectedinenterpriseenvironments.thestorageproblemareasofdockerare resolvedbysoftnascloud. Developerscanalsobenefitfromcreatingwriteablesnapshotsofproductiondatatodevelopandtest with.thedevelopmentlifecyclenowbecomesextremelyflexible.theproductionenvironmentissafer whendevelopersarenotpermittedtodirectlyaccessproductioninfrastructureanddatasets.qatesting cyclesarefasterwhenlargeamountsofdatadoesnotneedtobecopiedforeachtest,andinstantaneous storagesnapshotsandwritableclonesareusedinsteadoftime^consuming,expensivedeepcopiesof data. 0 Thefollowingimplementationdemonstrateshowawebdevelopercouldcreateadevelopment environmentthatcanbeusedtohostbothwebdataaswellasacoderepository.bydoingsointhe followingfashionitcanallowformaximumdevelopmentflexibilityandwillkeepstrictsecurityinplace throughoutthedevelopmentlifecycle.morespecifically,inthisusecasewewillconfigureacontainerto runanapachewebserverthatwillservecontentfromoursoftnasfileshare. Copyright 2014SoftNAS,LLC AllRightsReserved
Setting*up*a*Docker*Host* SetupstartswithinstructionsforstartingDockeronanUbuntuhost. sudo apt-get update sudo apt-get install docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io source /etc/bash_completion.d/docker.io InordertotestusetheversionoptiontocheckthatDockerinstalled. sudo docker --version OnceDockerisinstalledmapthehostservertoaSoftNASCloudshare.Dependingontheversionof Ubuntuitmaybenecessarytoinstallthenfs^commonpackage. sudo apt-get install nfs-common OncethenfstoolsareinstalledmapthehosttotheSoftNASserver.Asanexample,mapthedrivetoa /softnasfolderonthehost.firstmakethedirectory sudo mkdir /softnas Oncethedirectoryismademounttheshare. sudo mount SOFTNAS_IP_ADDRESS:/SOFTNAS_SHARE /softnas Asanexample: sudo mount SOFTNAS_IP_ADDRESS:/eph/eph /softnas ThismountsthedirectoryfromourephemeralstoragetotheDockerhostintothedirectory/softnas. Anotherbrieftest: Copyright 2014SoftNAS,LLC AllRightsReserved
sudo touch /softnas/host.file Nowchecktomakesurethatthefileiscreated. ls /softnas WiththeDockerhostisconfigured,nowconnecttothehostsfilesystemviathe^voptionintheDocker runcommand. ThiscommandwilllaunchaninteractiveUbuntucontainermappingafolderfromthecontainernamed /softnastothehostfoldercreatedinthepreviousstepnamed/softnas. sudo docker run -i -t --name ubuntu -v /softnas:/softnas ubuntu /bin/bash Acommandpromptisnowlaunchedthatwillallowanewcontainertobeexplored.Ensurethattheshare iswritablefromthecontainerbycreatingabasichtmlfile. sudo cat > index.html Type <html><h1>this is from SoftNAS</h1></html> Then press Ctrl C to exit Thendoublecheck ls /softnas Thisshouldnowshowindex.html,aswellasthehost.filecreatedearlier. Oncethefilestorageandaccesshavebeentested,andthehtmlfilehasbeencreatedwecancontinue. IssuearuncommandtoDockerthatwillpullanapacheimagefromtheDockerrepository.Dockerwill thenrunacontainerwithapacheinstalled,anditwillservethecontentfromthesoftnassharecreated earlier. ' sudo docker run --name apache2 -p 80:80 -v /softnas:/var/www -d eboraas/apache Copyright 2014SoftNAS,LLC AllRightsReserved
Continuous*Integration*and*Delivery* Thecloudmodelhasevolvedrapidlyoverthelastfewyears,fromsimpleon^demandinfrastructureto richenvironmentsprovidingagiledevelopmentcapabilitiesfornewapplications.devopshasemergedas amethodologydrivingtheintegrationandcollaborationofitprofessionalsandsoftwaredevelopers. SoftwaremethodshavegrownbeginningwithContinuousIntegration,whichdescribesdevelopers workingcloselytogethertomergecodeupto10timesaday.beyondintegrationiscontinuous Deploymentincreasingthereleasecycletomultiplereleasesperday. ContinuousIntegrationandDeliveryhaveincreaseddemandforthemanagementofproductionandtest data.productiondatamusthaveenterpriseclasssecurity,reliability,andavailabilitywhileintegrating withapplicationrapiddeploymenttoolssuchasdockercontainers. DevOpsmustbeabletodevelopandtestagainstaproduction^likesystemwithproduction^likedata. DevOpscreateaStagingenvironmenteitherinon^premiseorpublicCloudstoperformquality acceptancetests.softnascloudisreadilydeployableinawiderangeofcloudconfigurations.live productionfilesystemscanbecoherentlyfrozenintimethroughsoftnascloudsnapshots,andthen copiedfromtheproductiontostagingenvironment(orsimulatedproductiondatasetscanbeusedwhere privacyissuesprecludedirectuseofproductiondatabydevops). DevOpscancontinuallyvalidateapplicationqualityintheStagingenvironmentbytestingagainst Copyright 2014SoftNAS,LLC AllRightsReserved
writablesoftnassnapshots.instantaneouslysnapshotcreationallowsquicktestcycleswheredatais managebycreatingandmountingsnapshots,executingteststoread/writethesnapshots,deletingthe snapshotsattestconclusion,andloopingbacktosnapshotcreationsupportingcodefixandretest. * Deploy*Applications*to*Scale* TheprevioussectiondiscussedhowtheSoftNASCloudsolutionhelpedtosimplifyacontinuous developmentcyclebydeliveringcompletestorageflexibilitytodockercontainers.thissectionwill extendthatpremise,byshowinghoweasilyawebapplicationcanbemovedfromdevelopmentto productiontoscale. Inordertoachieveapplicationscale,automationtoolsarevaluabletominimizeeffortandcomplexity. AWSElasticBeanstalkisoneautomationtoolthatprovidesaneasy^to^useservicefordeploymentsand solvesresourceproblemsenablingthescalingofwebapplicationsandservices.developerssimply uploadcodeandelasticbeanstalkautomaticallyhandlesdeployment,capacityprovisioning,load balancing,auto^scalingandhealthmonitoring.elasticbeanstalksimplifiesthecreation,deployment,and operationsofwebapplicationsastheyscale,withawsprovisioningandconfiguringawsresourcessuch asec2instances,elasticloadbalancer,andautoscalinggroup.dockersupportinelasticbeanstalk extendsthedeploymentcapabilitiestoanysoftwarestack. UtilizingSoftNASCloudwithAWSElasticBeanstalkandDockercreatesasimpleandscalablewayto moveyourwebapplicationtoaproductionlevelarchitecture.softnascloudprovidesthesharable scalablestoragetotheautoscalingdockercontainersthataremanagedbyelasticbeanstalk. Thefollowingimplementationwilldescribehowtocreatescriptstoautomaticallyconfigurehostsand containerstoutilizethesoftnasshare.bycreatingthesescriptsdevelopersarepoisedtorapidlyscale outtheirapplicationswithpersistentshareablestorage. Configuration*Overview* DeploymentwillnowbeintegratedwithBeanstalktolaunchnewinstancesautomatically.Anapache containerindockerwillservefilesfromasoftnasshare. TherearetwomainfilesusedtotellBeanstalkhowtobuildtheinstances.Onefileconfiguresthemapto thebeanstalkhost,andonefilewilltelldockerhowtoconfigureitscontainer. Copyright 2014SoftNAS,LLC AllRightsReserved
Configure*the*Beanstalk*Docker*Host* Elasticbeanstalkallowsthecreationoffilestoautomaticallyconfiguretheinstancesascreated.Thisisa veryimportantpartbecauseitwillallowmappingthedockerhosttothesoftnasshare.beanstalk allowsthisbyreadingyamlconfigurationfilesinahiddendirectorycalled.ebextensions.thefilefor thisexamplewilllooklikethefollowing: --- packages: yum: nfs-utils: [] commands: MKDIR: command: mkdir /softnas NFS Map: command: mount [softnas host ip]:/eph/eph /softnas It simportanttorememberthatthedefaultbeanstalkhostistheamazonlinuxami.doacoupleof itemsspecifictothatami. Ensurethat nfs^utils isinstalled Createthemountpoint /softnas MounttheSoftnassharetothehost.Pleasemakesuretochange softnashostip tothe correspondingcorrectip. Configure*Elastic*Beanstalk*with*a*Docker*Container* Therearethreemainwaystodescribeacontainer,andhowitisgoingtorunwiththeElasticBeanstalk Dockerhost. Dockerfile:ADockerfileisaplaintextdocumentthatisusedbyDockertobuildacustomimage toberuninacontainer Copyright 2014SoftNAS,LLC AllRightsReserved
Dockerrun.aws.json:AJSONformatteddocumentusedtodownloadimagesfromtheDocker repositoryaswellasconfigureanyoptionswhilerunningthatcontainer.thisisthemethodthat thisdocumentwilluse. Combination:ElasticBeanstalkwillallowuseofacombinationofDockerfileaswellasDockerrun todescribethedockercontaineringreaterdetail. Create*Dockerrun.aws.json*to*connect*to*SoftNAS* ThefollowingjsonfileisgoingtodownloadaprebuiltimagefromtheDockerrepository,andlaunchit ontothedockerhost. { "AWSEBDockerrunVersion":"1", "Image":{ "Name":"eboraas/apache", "Update":"true" }, "Ports":[ { "ContainerPort":"80", "ContainerPort":"443" } ], "Volumes":[ { "HostDirectory":"/softnas", "ContainerDirectory":"/var/www" } ] } Hereisascreenshottomakesurethatthedocumentisformattedcorrectly.JSONisverysensitiveto formattingirregularities. Copyright 2014SoftNAS,LLC AllRightsReserved
Compress*Files*to*upload*to*Elastic*Beanstalk* Atthispointthefileswillneedtobeputintoafolder.Themostimportantthingtorememberistohave allofthefilesintherootzipfile.inotherwordsthefilesshouldbecompressed,andnotinafolder. Copyright 2014SoftNAS,LLC AllRightsReserved
Configure*Elastic*Beanstalk* Select createanewapplication intheupperrighthandsideofthebeanstalkconsole. Nametheapplication,inthiscasethenameSoftNASEBDemowaschosen.Provideadescription. Next,configurethebasicEnvironmenttypeofElasticBeanstalk. EnvironmentTier:WebServer PredefinedConfiguration:Docker Environmenttype:SingleInstance Forproductiontherecommendedenvironmenttypeis Load balancing,autoscaling Inthenextsessionuploadthezipfilethatwascreatedpreviously.Selecttheradiobuttonnextto Upload yourown andselectthezipfile. Copyright 2014SoftNAS,LLC AllRightsReserved
InthenextsessionsimplynametheenvironmentandenvironmentURL. ElasticBeanstalkwillautomaticallycheckthattheURLisavailable.Thisiswheretopointthedomains cnamerecord. Ontheadditionalresourcespage,checktheboxfor createthisenvironmentinsideavpc whileitisnot necessaryforthisdemo,itisbestpractice,anditallowsformoreflexibilitymovingforward. Intheconfigurationdetails,assignapemkeyfordebuggingandtroubleshootingpurposes.Ina productionenvironment,itisbestpracticetoleavethepemkeyassignmentoffsincetheenvironment shouldbecompletelyconfiguredandcontrolledusingbeanstalk. Intheenvironmenttagspageaddanametagsotheinstancesareclearlydefined. InthenextBeanstalksectionselecttheVPCandsubnetlocations.Inthissamplewehaveselectedtwo availabilityzonesincasewewouldliketoscaleinthefuture.makesuretoselectthesecuritygroupthat Copyright 2014SoftNAS,LLC AllRightsReserved
wecreatedintheoriginalusecase.ifyoudonothavethatsecuritygroupcreatedyoucaneasilycreate one.fortestingpurposesyouwillneedtocreateagroupthatallowsalltraffictoitself. * Copyright 2014SoftNAS,LLC AllRightsReserved
Copyright 2014SoftNAS,LLC AllRightsReserved High*Availability*and*Replication* AllofthefeaturesofferedbySoftNASCloudapplytowardprovidingenterpriseclasscapabilitiesin DockerContainerdeployments.ThedesignofyourSoftNASinstallationonAmazonEC2dependsonthe amountofusablestorage,theiopsyouneedandthelevelofavailabilityrequired.youcanchoosefroma numberofconfigurations,dependinguponyourusecaseandavailabilityrequirements.usethecross^ zonehaarchitecturefor99.999%availability. SoftNASprovideshigh^availabilityandautomatic,seamlessfailoveracrossavailabilityzoneswithits SNAPHA functionality,ensuringsharedstorageisalwaysavailable,evenwhenanentirezoneor specificinstancefails. Cross^zoneHAoperateswithinaVPC.NAStrafficisroutedthroughanenhancedelasticIPusingSoftNAS patent^pendingelasticha technology;thatis,nfs,cifsandiscsitrafficisroutedtoaprimarysoftnas controllerinonezone,andasecondarycontrolleroperatesinadifferentavailabilityzone.nasclients canbelocatedinanyavailabilityzone. SnapReplicate performsasynchronousblockreplicationfromtheprimarycontrolleratothebackup controllerb,keepingthesecondaryhotwiththelatestchangeddatablocksonceperminute.intheevent ofafailureinaz1shownabove,theelastichaipautomaticallyfailsovertocontrollerbinaz2,inless than30seconds.uponfailover,allnfs,cifsandiscsisessionsreconnectwithnoimpactonnasclients (i.e.nostalefilehandlesorotherillside^effectsandnoneedtorestartnasclients,whichcontinueasif nothinghadhappened). SNAPHAprovidesthefollowingcapabilities: Crosszonehigh^availability Automaticfailover UsesSoftNASSnapReplicatefeatureforsecureblockreplication SyncImage handlesaninitialfullreplicationcycle(likeafullbackup) Onceperminute,SnapReplicatereplicatesonlythechangeddatablocksfromlastminute Providesa warm nearreal^timebackupwithautomaticfailover ElasticHA technologyprovidesseamlessfailoverorcross^zonenastraffic(nfs, CIFS/SMB,iSCSI)fornon^stopoperation SnapReplicatereplicationusesPKIauthenticationandconfigurableencryptiontosecure replicationsessions Automaticfailoveristriggeredbyfailureoftheprimaryinstance,lossofnetwork connectivitytotheprimaryoranythingthatimpairsthecontrollerfromservingstorageto NASclients. Manualfailover(takeover)andfailback(giveback)operationsprovidetheadministrator theabilitytocontrolwhichcontrolleristheprimary,makingperiodicmaintenance straightforward Activateanddeactivatecontrolsenableadministratortoplacetheclusterintomaintenance mode ThefollowingdiagramisanexampledeploymentofSNAPHAacrossavailabilityzones,withbothpublic andprivatesubnetsineachzone.formoredetails,consultthesoftnashighavailabilityguide.
Figure1 Cross^zoneHAConfigurationwithDockerContainers * Copyright 2014SoftNAS,LLC AllRightsReserved
Introduction*to*the*API* TheSoftNASRestAPIprovidesaccesstothePHP^basedSoftNASadminserver.Thisprovidesaccessto SSDanddiskdevicemanagementontheEC2,Azure,andvSpherehosts.TheSoftNASAPIcanbe programmedinanylanguagethatsupportshttpsrequestsandresponses,includingjavascriptwith Ajax,PHP,CURL,PERL,.NET,Java,etc. TheSoftNASRestAPIusesGET,POST,PUTandDELETErequestssentoverHTTPSconnectionstothe ApachewebserverrunningonLinux,whichinturnareprocessedbythePHP^basedSoftNASadmin server.thesoftnasadminserverreturnsitsresponsesasjson^formattedstringsviathehttp response.thesoftnasrestapioffersawayforthirdpartysystemstoaccessthesameapithatisused bythesoftnasstoragecenteradministrationgui.thisprovidesaccesstothesoftnasadminserver, whichmanagesthesoftnasrun^timeenvironment. Inaddition,the"softnas^cmd,"acommand^lineutilitywritteninCURL,providesaccesstothesameAPI callsfromthelinuxcommandline.thecommandlineoperationsaredefinedinthecommand Referencesection. TheCLIprovidescommandlineaccesstotheAPIsetforquickandeasystorageadministration.Both methodsareavailableforprogrammaticstorageadministrationbydevopsteamswhowanttodesign storageintocloudformationandotherautomatedprocesses.formoredetails,refertothesoftnasapi andcliguide. Copyright 2014SoftNAS,LLC AllRightsReserved
How*to*Get*Started* LaunchfromMarketplace(FreeTierand30^dayfreetrialsavailable) TrySoftNASCloudinyourAWSaccountforfree.Chooseanyinstancesizeyoupreferforfree(certain AWSusagefeesmayapply). ReadtheDocumentation LearnmoreaboutSoftNASbygoingdeeperintothedocumentationtogetallthedetails. Questions?ContactSoftNASSalesandSupportstafftogetyourquestionsansweredtoday. Copyright 2014SoftNAS,LLC AllRightsReserved