Use Azure File Sync to bridge your storage SMBs and NFS needs for Desktop Virtualization and DaaS

%3CLINGO-SUB%20id%3D%22lingo-sub-355301%22%20slang%3D%22en-US%22%3EUse%20Azure%20File%20Sync%20to%20bridge%20your%20storage%20SMBs%20and%20NFS%20needs%20for%20Desktop%20Virtualization%20and%20DaaS%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-355301%22%20slang%3D%22en-US%22%3E%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%0A%3CP%20style%3D%22text-align%3A%20left%3B%22%3EWe%20all%20configured%2C%20let%E2%80%99s%20name%20it%20like%20traditional%20network%20file%20servers%2C%20and%20probably%20chained%20them%20together%20with%20DFS%20namespaces%20%E2%80%93%20activated%20replication%20for%20redundancy%20reasons%20%E2%80%93%20and%20we%E2%80%99re%20all%20set%20on%20our%20on-premises%20file%20server%20environment.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20left%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20left%3B%22%3EThis%20approach%20requires%20a%20lot%20of%20management%20effort%20to%20make%20it%20highly%20available%2C%20redundant%20and%20reliable%20for%20enterprises.%20Azure%20File%20Sync%20is%20a%20relatively%20new%20service%20within%20Azure%20that%20takes%20away%20the%20complexity%20and%20put%20in%20lots%20of%20simplicity%20to%20make%20this%20process%20as%20easy%20as%20you%20will%20think%20how%20it%20should%20be%20working%20in%20from%20Cloud%20point%20of%20view.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20left%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CBLOCKQUOTE%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22text-align%3A%20center%3B%20direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-autospace%3A%20none%3B%22%3E%3CEM%3E%E2%80%9CEverything%20is%20going%20to%20be%20connected%20to%20cloud%20and%20data%E2%80%A6%20All%20of%20this%20will%20be%20mediated%20by%20software.%E2%80%9D%20%E2%80%93%20Satya%20Nadella%2C%20CEO%20of%20Microsoft%3C%2FEM%3E%3C%2FP%3E%0A%3C%2FBLOCKQUOTE%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22text-align%3A%20center%3B%20direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-autospace%3A%20none%3B%22%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3EIn%20a%20nutshell%2C%20with%20Azure%20File%20Sync%2C%20you%20don%E2%80%99t%20have%20to%20choose%20between%20the%20benefits%20of%20cloud%20and%20the%20disbenefits%20of%20your%20on-premises%20file%20server%20because%20you%20can%20have%20both.%20Azure%20File%20Sync%20replicates%20files%20from%20your%20on-premises%20Windows%20Server%20to%20an%20Azure%20file%20share%2C%20eventually%20enabling%20you%20to%20centralize%20your%20file%20services%20in%20Azure%20while%20maintaining%20local%20SMB%20access%20to%20your%20data.%20%3C%2FSPAN%3E%3CEM%20style%3D%22font-family%3A%20inherit%3B%22%3EContinue%20reading%20to%20know%20more%20about%20Azure%20File%20Sync...%3C%2FEM%3E%3C%2FP%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22text-align%3A%20center%3B%20direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-autospace%3A%20none%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-1481466240%22%20id%3D%22toc-hId-1533991897%22%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3ESo%2C%20what%20is%20Azure%20File%20Sync%3F%3C%2FSPAN%3E%3C%2FH3%3EYou%20probably%20know%20OneDrive%20for%20Business%2C%20right%3F%20OneDrive%20for%20Business%20is%20an%20Office%20365%20storage%20service%20which%20comes%20with%20almost%20all%20the%20Office%20365%20licensing%20models.%20The%20behavior%20of%20OneDrive%20synchronization%20technology%20works%20pretty%20similar%20to%20Azure%20File%20Sync%2C%20although%20there's%20a%20significant%20change%20in%20data%20management%20support%20-%20It%E2%80%99s%20able%20to%20create%20SMB%2FNFS%20file%20shares!%20However%2C%20Azure%20File%20Sync%20has%20more%20the%20focus%20to%20create%20hybrid%20storage%20environments%20for%20enterprise%20environments.%20All%20based%20on%20the%20synchronization%20approach%20of%20OneDrive%2C%20therefore%20now%20with%20the%20compatibility%20of%20traditional%20storage%20environments%2C%20such%20as%20Windows%26nbsp%3Bnetwork%20shares.%20The%20Azure%20File%20service%20gives%20you%20a%20fully%20managed%20cloud%20file%20share%20and%20extends%20the%20ability%20of%20organizations%20to%20share%20files%20across%20on-premises%20and%20the%20cloud.%20Users%20will%20not%20notice%20whether%20the%20data%20is%20running%20on%20the%20Azure%20Cloud%20or%20on-premises!%20%3CEM%3EThis%20can%20also%20be%20very%20beneficial%20when%20you%E2%80%99re%20running%20Desktop%20Virtualization%20%2F%20DaaS%20environments%20on-premises%2C%20and%20in%20the%20Azure%20Cloud%20%E2%80%93%20in%20a%20hybrid%20way%20with%20a%20sort%20of%20best%20of%20both%20world%20regarding%20App%20and%20Data%20compatibility%2C%20and%20save%20costs%20for%20traditional%20file%20server%20needs%20in%20Azure%20IaaS.%26nbsp%3B%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%0A%3CH3%20id%3D%22toc-hId--1070690721%22%20id%3D%22toc-hId--1018165064%22%3E%26nbsp%3B%3C%2FH3%3E%0A%3CH3%20id%3D%22toc-hId-672119614%22%20id%3D%22toc-hId-724645271%22%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3EOn-premises%2C%20hybrid%26nbsp%3BCloud%20Data%20%E2%80%93%20best%20of%20both%20worlds%3C%2FSPAN%3E%3C%2FH3%3EAs%20we%E2%80%99re%20moving%20towards%20a%20more%20Digital%20World%2C%20leveraging%20platform%20and%20other%20Cloud%20services%2C%20we%20still%20have%20to%20deal%20with%20hybrid%20scenarios%20%2F%20on-premises%20whether%20that's%20for%20legacy%2C%20app%20compatibility%20or%20other%20compliance%20reasons.%20With%20support%20for%20the%20SMB%20protocol%2C%20this%20service%20is%20cross-platform%20and%20can%20support%20mounting%20as%20file%20share%20from%20any%20client%20that%20implements%20SMB%203.0%20with%20encryption.%20Also%2C%20another%20great%20thing%20is%20that%20your%20data%20persists%20locally%20and%20in%20the%20Cloud.%20For%20resiliency%20and%20throughput%20reasons%20this%20can%20be%20very%20relevant%20in%20a%20hybrid%20Cloud%20scenario.%20There%20are%20workloads%2C%20such%20as%20CAD%2FCAM%20drawings%20for%20AutoCAD%20application%2C%20for%20which%20latency%20is%20very%20important%20and%20could%20be%20an%20issue.%20Organizations%20cannot%20have%20users%20in%20specific%20sites%20dealing%20with%20100ms%20latency%20and%20get%20the%20job%20done.%20Dealing%20with%20large%20files%20in%20general%20in%20a%20hybrid%20scenario%20can%20be%20beneficial%20as%20well%20when%20using%20Azure%20File%20Sync.%20Eventually%2C%20all%20your%20files%20are%20copied%20to%20Azure%20Files%20in%20your%20Azure%20Storage%20Account%2C%20with%20all%20the%20benefits%20of%20this%20service%20includes%2C%20such%20as%20LRS.%20Azure%20Files%20supports%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fnb-no%2Fazure%2Fstorage%2Fcommon%2Fstorage-redundancy-lrs%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%22%3Elocally%20redundant%20storage%20(LRS)%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fnb-no%2Fazure%2Fstorage%2Fcommon%2Fstorage-redundancy-zrs%3Ftoc%3D%252fazure%252fstorage%252fqueues%252ftoc.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ezone%20redundant%20storage%20(ZRS)%3C%2FA%3E%2C%20and%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fnb-no%2Fazure%2Fstorage%2Fcommon%2Fstorage-redundancy-grs%3Ftoc%3D%252fazure%252fstorage%252fqueues%252ftoc.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%22%3Egeo-redundant%20storage%20(GRS)%3C%2FA%3E.%20Microsoft%20plans%20to%20support%20read-access%20geo-redundant%20(RA-GRS)%20storage%20in%20the%20future%2C%20but%20we%20don't%20have%20timelines%20to%20share%20at%20this%20time.%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%0A%3CH3%20id%3D%22toc-hId--1880037347%22%20id%3D%22toc-hId--1827511690%22%3E%26nbsp%3B%3C%2FH3%3E%0A%3CH3%20id%3D%22toc-hId--137227012%22%20id%3D%22toc-hId--84701355%22%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3EAn%20easy%20way%20to%20go%20full%20on%20Cloud%3C%2FSPAN%3E%3C%2FH3%3EAnother%20great%20benefit%20of%20this%20service%20is%20that%20your%20data%20will%20be%20replicated%20from%20on-premises%20to%20your%20Azure%20Storage%20Account%20%E2%80%93%20as%20part%20of%20the%20Azure%20File%20Sync%20Service.%20So%2C%20ultimately%20your%20data%20is%20already%20in%20the%20Cloud.%20For%20instance%2C%20when%20you%20decide%20to%20decommission%20file%20servers%20in%20an%20on-premises%20site%20%E2%80%93%20the%20data%20always%20stays%20behind%20within%20Azure.%26nbsp%3B%3CEM%3EWhat%20I%E2%80%99m%20trying%20to%20say%20with%20this%2C%3C%2FEM%3E%20that%20you%20no%20longer%20have%20to%20migrate%20data%20to%20Azure%20when%20you%20use%20Azure%20File%20Sync%20%E2%80%93%20just%20for%20the%20simple%20reason%3A%3CSTRONG%3E%20It%E2%80%99s%20already%20in%20there%3C%2FSTRONG%3E%20%3CEM%3EThis%20can%20be%20relevant%20for%20Disaster%20-%20outages%2C%20natural%20disaster%20Recovery%20scenarios%20as%20well.%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%0A%3CH3%20style%3D%22text-align%3A%20center%3B%22%20id%3D%22toc-hId-1605583323%22%20id%3D%22toc-hId-1658108980%22%3E%26nbsp%3B%3C%2FH3%3E%0A%3CH3%20style%3D%22text-align%3A%20center%3B%22%20id%3D%22toc-hId--946573638%22%20id%3D%22toc-hId--894047981%22%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3E%3CEM%3E%22%20I%20hear%20you%20saying%2C%20What%20about%20other%20data%2C%20such%20as%20User%20Profiles%20and%20VHDx%E2%80%99s%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FH3%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3CEM%3EAs%20mentioned%20earlier%20in%20this%20article%2C%20Azure%20File%20Sync%20support%20SMB%20and%20NFS%20all%20based%20on%20%E2%80%9Ctraditional%E2%80%9D%20NTFS%20ACLs%2C%20which%20effectively%20means%20that%20everything%20can%20be%20stored%20on%20the%20endpoint%20of%20the%20Azure%20File%20Share%20hierarchy.%3C%2FEM%3E%20%3CEM%3ESo%2C%20when%20you%E2%80%99re%20a%20Citrix%2C%20VMware%20or%20Microsoft%20RDS%20%2F%20WVD%20customer%2C%20and%20still%20have%20legacy%20applications%20or%20any%20other%20legitimate%20reason%20to%20have%20corporate%20data%20running%20on-premises.%20Azure%20File%20Sync%20can%20be%20an%20excellent%20approach%20to%20use%20for%20your%20on-premises%20workloads%2C%20and%20later%20(or%20mixed)%20Cloud%20workloads.%20Best%20of%20both%20world%20though.%26nbsp%3B%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%0A%3CH3%20id%3D%22toc-hId-796236697%22%20id%3D%22toc-hId-848762354%22%3E%26nbsp%3B%3C%2FH3%3E%0A%3CH3%20id%3D%22toc-hId--1755920264%22%20id%3D%22toc-hId--1703394607%22%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%22%3EFrom%20an%20architecture%20perspective%3C%2FSPAN%3E%3C%2FH3%3EAzure%20Files%20Sync%20replication%20process%20is%20default%20going%20over%20the%20internet.%20You%20could%20manage%20the%20traffic%20by%20using%20either%20an%20ExpressRoute%20with%20Public%20Peering%E2%80%99s%20activated%20or%20using%20an%20SD-WAN%20solution%20to%20managed%20your%20storage%20account%20traffic%20to%20Azure.%20When%20a%20file%20server%20needs%20to%20be%20added%20to%20the%20Azure%20File%20Share%20environment%20after%20an%20outage%2C%20or%20simply%20because%20it%E2%80%99s%20a%20new%20branch%20office.%20Just%20simply%20connect%20your%20new%20Windows%20Server%20to%20your%20existing%20sync%20group%20in%20the%20Azure%20File%20Service.%20Everything%20will%20be%20synchronized%20automatically%2C%20and%20your%20Endpoint%20is%20%3CEM%3E%3CSTRONG%3Eready%20to%20use%20in%26nbsp%3Ba%20snap!%3C%2FSTRONG%3E%3C%2FEM%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-autospace%3A%20none%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-autospace%3A%20none%3B%22%3ESee%20below%20an%20architectural%20example%20how%20Azure%20File%20Sync%20comes%20together%20in%20a%20hybrid%20cloud%20scenario%20when%20using%20Desktop-As-a-Service%20workloads%20on-premises%20and%2For%20on%20Azure%20Infrastructure-As-a-Service.%20%3CEM%3EThis%20example%20contains%20Windows%20Virtual%20Desktop%20or%20Citrix%20Cloud%2C%20but%20technically%20this%20setup%20applies%20for%20any%20other%20Virtual%20Desktop%20or%20normal%20physical%20workload%20which%20is%20supported%20for%20Azure!%3C%2FEM%3E%3C%2FP%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-align%3A%20center%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22Normal-P%22%20style%3D%22direction%3A%20ltr%3B%20unicode-bidi%3A%20normal%3B%20text-align%3A%20center%3B%22%3E%26nbsp%3B%3C%2FP%3E%3CA%20href%3D%22http%3A%2F%2Fwww.christiaanbrinkhoff.com%2Fwp-content%2Fuploads%2F2019%2F01%2Fazurefilesanddaas.png%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3E%3CIMG%20style%3D%22display%3A%20block%3B%20margin-left%3A%20auto%3B%20margin-right%3A%20auto%3B%22%20class%3D%22aligncenter%20wp-image-52946%22%20src%3D%22http%3A%2F%2Fwww.christiaanbrinkhoff.com%2Fwp-content%2Fuploads%2F2019%2F01%2Fazurefilesanddaas.png%22%20border%3D%220%22%20alt%3D%22%22%20width%3D%22960%22%20height%3D%22587%22%20%2F%3E%3C%2FA%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%3CSTRONG%3ERead%20the%20complete%20article%20here%3A%3C%2FSTRONG%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22pmdi_content_wrapper%22%3E%3CA%20href%3D%22https%3A%2F%2Fwww.christiaanbrinkhoff.com%2F2019%2F02%2F22%2Fuse-azure-file-sync-to-bridge-your-storage-smbs-and-nfs-needs-with-azure-files-cloud-storage-for-windows-virtual-desktop-citrix-virtual-desktops-and-other-daas-workloads-on-azure%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.christiaanbrinkhoff.com%2F2019%2F02%2F22%2Fuse-azure-file-sync-to-bridge-your-storage-smbs-and-nfs-needs-with-azure-files-cloud-storage-for-windows-virtual-desktop-citrix-virtual-desktops-and-other-daas-workloads-on-azure%2F%3C%2FA%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-355301%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Highlighted
Occasional Contributor

We all configured, let’s name it like traditional network file servers, and probably chained them together with DFS namespaces – activated replication for redundancy reasons – and we’re all set on our on-premises file server environment.

 

This approach requires a lot of management effort to make it highly available, redundant and reliable for enterprises. Azure File Sync is a relatively new service within Azure that takes away the complexity and put in lots of simplicity to make this process as easy as you will think how it should be working in from Cloud point of view.

 

“Everything is going to be connected to cloud and data… All of this will be mediated by software.” – Satya Nadella, CEO of Microsoft

In a nutshell, with Azure File Sync, you don’t have to choose between the benefits of cloud and the disbenefits of your on-premises file server because you can have both. Azure File Sync replicates files from your on-premises Windows Server to an Azure file share, eventually enabling you to centralize your file services in Azure while maintaining local SMB access to your data. Continue reading to know more about Azure File Sync...

 

So, what is Azure File Sync?

You probably know OneDrive for Business, right? OneDrive for Business is an Office 365 storage service which comes with almost all the Office 365 licensing models. The behavior of OneDrive synchronization technology works pretty similar to Azure File Sync, although there's a significant change in data management support - It’s able to create SMB/NFS file shares! However, Azure File Sync has more the focus to create hybrid storage environments for enterprise environments. All based on the synchronization approach of OneDrive, therefore now with the compatibility of traditional storage environments, such as Windows network shares. The Azure File service gives you a fully managed cloud file share and extends the ability of organizations to share files across on-premises and the cloud. Users will not notice whether the data is running on the Azure Cloud or on-premises! This can also be very beneficial when you’re running Desktop Virtualization / DaaS environments on-premises, and in the Azure Cloud – in a hybrid way with a sort of best of both world regarding App and Data compatibility, and save costs for traditional file server needs in Azure IaaS. 

 

On-premises, hybrid Cloud Data – best of both worlds

As we’re moving towards a more Digital World, leveraging platform and other Cloud services, we still have to deal with hybrid scenarios / on-premises whether that's for legacy, app compatibility or other compliance reasons. With support for the SMB protocol, this service is cross-platform and can support mounting as file share from any client that implements SMB 3.0 with encryption. Also, another great thing is that your data persists locally and in the Cloud. For resiliency and throughput reasons this can be very relevant in a hybrid Cloud scenario. There are workloads, such as CAD/CAM drawings for AutoCAD application, for which latency is very important and could be an issue. Organizations cannot have users in specific sites dealing with 100ms latency and get the job done. Dealing with large files in general in a hybrid scenario can be beneficial as well when using Azure File Sync. Eventually, all your files are copied to Azure Files in your Azure Storage Account, with all the benefits of this service includes, such as LRS. Azure Files supports locally redundant storage (LRS), zone redundant storage (ZRS), and geo-redundant storage (GRS). Microsoft plans to support read-access geo-redundant (RA-GRS) storage in the future, but we don't have timelines to share at this time.

 

An easy way to go full on Cloud

Another great benefit of this service is that your data will be replicated from on-premises to your Azure Storage Account – as part of the Azure File Sync Service. So, ultimately your data is already in the Cloud. For instance, when you decide to decommission file servers in an on-premises site – the data always stays behind within Azure. What I’m trying to say with this, that you no longer have to migrate data to Azure when you use Azure File Sync – just for the simple reason: It’s already in there This can be relevant for Disaster - outages, natural disaster Recovery scenarios as well.

 

" I hear you saying, What about other data, such as User Profiles and VHDx’s

 

As mentioned earlier in this article, Azure File Sync support SMB and NFS all based on “traditional” NTFS ACLs, which effectively means that everything can be stored on the endpoint of the Azure File Share hierarchy. So, when you’re a Citrix, VMware or Microsoft RDS / WVD customer, and still have legacy applications or any other legitimate reason to have corporate data running on-premises. Azure File Sync can be an excellent approach to use for your on-premises workloads, and later (or mixed) Cloud workloads. Best of both world though. 

 

From an architecture perspective

Azure Files Sync replication process is default going over the internet. You could manage the traffic by using either an ExpressRoute with Public Peering’s activated or using an SD-WAN solution to managed your storage account traffic to Azure. When a file server needs to be added to the Azure File Share environment after an outage, or simply because it’s a new branch office. Just simply connect your new Windows Server to your existing sync group in the Azure File Service. Everything will be synchronized automatically, and your Endpoint is ready to use in a snap!

 

See below an architectural example how Azure File Sync comes together in a hybrid cloud scenario when using Desktop-As-a-Service workloads on-premises and/or on Azure Infrastructure-As-a-Service. This example contains Windows Virtual Desktop or Citrix Cloud, but technically this setup applies for any other Virtual Desktop or normal physical workload which is supported for Azure!

 

 

 
 
Read the complete article here:
0 Replies