محمد نصیری
هکر کلاه سفید ، کارشناس امنیت اطلاعات و ارتباطات

VSS چیست؟ بررسی Volume Shadow Copy Service به زبان بسیار ساده

سرویس VSS چیست؟ کاربرد Volume Shadow Copy در ویندوز چیست؟ خاطرم هست در سالهای دور که از ویندوزهای 98 و ملینیوم استفاده می کردیم و ویندوز سرور ما نسخه NT و ویندوز سرور 2000 بودند من در سازمانی کار می کردم که در حدود 200 عدد کلاینت داشت و فایل ها و اطلاعاتی که در این سرورها قرار می گرفت همیشه باید Backup گرفته می شد . اما نکته بسیار مهم در خصوص Backup گیری از این سرورها بود ، اگر بگویم یکی از بزرگترین دردسرهای مدیران شبکه و حتی یکی از کابوس های آنها همین Backup بود ، در آن روزها شما اگر به خاطر داشته باشید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. Volume Shadow Copy Service یا VSS چیست ؟

اگر می خواستیم یک فایل صوتی ساده را که در حال اجرا بود کپی کنیم بایستی ابتدا اجرای آن را متوقف می کردیم و بعد از آن آن فایل صوتی را کپی می کردیم ، حالا تصور کنید که شما برای Backup گیری فایل های روی سرور چه مشکلات زیادی داشتیم ، برای Backup گیری فایل هایی که بر روی سرور باز بود یا فایل های سرویس های کاربردی تقریبا باید کلیه نرم افزارها و سرویس هایی که از این فایل ها استفاده می کردند متوقف می شدند و بعد فرآیند Backup گیری انجام می شد.

اینکار برای سرویس های حساس سازمانی باید در زمان هایی انجام می شد که زمان کاری نبود و بعضا از سرویس ها کمتر استفاده می شد اما تقریبا در ساعات کاری استفاده از سیستم Backup برای ما تقریبا غیر ممکن بود. البته زمانیکه از نرم افزارهای Third Party برای Backup گیری سرویس ها استفاده می کردیم برای سرویسی مثل SQL سرور بعضا مشکلی برای Backup گیری نبود اما برای سرویس های دیگر همچنان مشکل داشتیم.


کاربرد سرویس Volume shadow Copy Service یا VSS

تقریبا بزرگترین مشکلی که در Backup گیری داشتیم یک سیستم مدیریت مستندات بود که بر مبنای Shared Folder کار می کرد اما فایل های Metadata ی آن در داخل یک Database ذخیره می شد . برای Backup گیری این سیستم تنها راهکار غیرفعال کردن سرویس مورد نظر و بعد Backup گیری از آن بود. این غیرفعال کردن باعث به وجود آمدن Downtime در شبکه می شد که با توجه به حساس بودن سرویس اصلا قابل توجیه نبود.

فرآیند Backup گیری از این سرویس بسیار پیچیده شده بود ، قبل از اجرای برنامه Backup یک سری اسکریپت برای غیرفعال کردن سرویس اجرا می شد ، یک سری اسکریپت برای Backup گیری و یک سری اسکریپت هم برای بعد از انجام فرآیند Backup گیری انجام می شد و هر روز صبح بعد از اینکه وارد سازمان می شدم اولین کارم بررسی کردن Log هایی بود که از این سیستم Backup گیری باقی مانده بود و این باعث می شد زمان و انرژی ما بسیار بر سر این موضوع هدر برود.

در نهایت به این نتیجه می رسیدید که شما از هیچ فایل در حال اجرایی امکان Backup گیری نداشتید. این مشکل همچنان ادامه داشت تا اینکه بعد از مدتی مایکروسافت در ویندوز سرور 2003 خودش یک سرویس جدید به نام Volume Shadow Copy Service یا VSS را معرفی کرد که این مشکلات را برطرف کرد و این امکان را به ما داد که بتوانیم از فایل های در حال اجرای خودمان هم Backup بگیریم.

Volume Shadow Copy Service یا VSS چیست ؟

وقتی یک فایل ورد را باز است و با استفاده از سیستم Backup گیری معمولی می خواهیم از آن Backup بگیریم سیستم عامل ویندوز بصورت پیشفرض از فایل مورد نظر که باز شده است در مقابل هرگونه دستکاری و حذف از درون هارد دیسک محافظت می کند که به اینکار Windows File Protection System گفته می شود. برای مثال دقت کنید که زمانیکه یک فایل باز شده است شما نمی توانید آن فایل را از داخل هارد دیسک حذف کنید زیرا سیستم عامل ها بصورت پیشفرض از فایل مورد نظر در برابر حذف محافظت می کنند.

Volume shadow Copy Service همانطور که از اسمش هم پیداست از پارتیشن ها یا Volume های ما محافظت می کند ، بگذارید یک مثال بزنیم ، فرض کنید همان فایل ورد باز شده است و نرم افزار Backup گیری ما به فایل مورد نظر می رسد ، اینبار خطایی دریافت نمی کنید VSS در این قسمت از نرم افزار Office word سئوال می پرسد که آیا من می توانم کمی در حد چند میلی ثانیه فایل شما را ببندم و مجددا در اختیار شما قرار بدهم یا خیر ؟ در این چند میلی ثانیه VSS از فایل مورد نظر یک Snapshot یا یک کپی فقط خواندی تهیه می کند و آن را بر روی هارد درایو شما ذخیره می کند.

این فرآیند بسیار پیچیده و دشوار است زیرا در روند کاری نرم افزار نباید به هیچ عنوان اختلالی پیش بیاید و در ضمن از محتویات فایل هم می خواهیم Backup بگیریم. این فرآیند چه در خصوص فایل هایی که می خواهیم Backup بگیریم و چه در خصوص پایگاه های داده و غیره آنقدر سریع انجام می شود که تقریبا هیچکس متوجه انجام شدن آن نمی شود. Restore Point ها در سیستم عامل کلاینت هم چنین وضعیتی را استفاده می کنند ، آنها از تنظیمات و محتویات Registry سیستم در حالیکه در حال استفاده است Backup می گیرند.


Windows File Protection System چیست



کاربرد Restore Point در ویندوز



VSS به گونه ای فایل های موجود را کپی می کند که قبل از معرفی این سرویس هیچ سرویس دیگری به چنین روشی کپی کردن را انجام نداده بود. اکثر نرم افزاها و تکنیکهای Backup گیری قبل از معرفی VSS فعالیت خودشان را به شکل File Level Backup انجام می دادند ، یعنی زمانیکه احساس می شد تغییری بر روی فایل انجام شده است کلیه تغییرات به همراه فایل اصلی Backup گیری می شد. اینکار ضمن اینکه زمان Backup گیری را زیاد می کرد ، فضای بیشتری برای Backup گیری نیز مورد نیاز بود.

اما در VSS تکنیک Block Level Backup معرفی شد ، به این شکل که فایل اصلی به عنوان یک Block از داده در نظر گرفته می شد که همیشه Backup گیری اولیه از ان انجام می شد ، اگر تغییری بر روی فایل انجام می شد در ساختار جدید فقط Block داده ای که به این فایل بر روی هارد دیسک اضافه شده بود Backup گیری می شد و این روند باعث افزایش سرعت Backup گیری از فایل ها می شد زیرا هر تغییری به عنوان یک بلاک ریز از داده ذخیره و به فایل قدیمی بر روی هارد دیسک اضافه می شد. این دقیقا همان دلیلی است که شما می توانید Restore Point های زیادی از سیستم عامل خودتان را بر روی یک فضای به نسبت کم بر روی هارد دیسک نگهداری کنید.

شما می توانید Backup های رجیستری که ماه ها پیش گرفته شده اند را در یک فضای بسیار کم 100 مگابایتی ذخیره کنید و در موارد مورد نیاز Backup خودتان را به زمان مورد نظر برگردانید. همه این موارد به دلیل استفاده از VSS و قابلیت Block Level Backup است که هر روز از کل رجیستری Backup گرفته نمی شود و فقط از بلوک های داده ای که تغییر کرده اند Backup گرفته می شود.

فراموش نکنید که تکنیک های Restore Point در ویندوز های کلاینت و تکنولوژی Volume Shadow Copy در ویندوز سرور هر دو از یک نوع تکنیک استفاده می کنند. در ویندوز سرور 2003 تکنولوژی Volume Shadow Copy برای سرورها برای استفاده به عنوان یک تکنیک Backup گیری استفاده شد و همزمان در ویندوز XP سرویس پک 2 برای استفاده در Restore Point ها از Volume Shadow Copy استفاده شد.

با معرفی ویندوز سرور 2008 و ویندوز ویستا تکنولوژی Volume Shadow Copy برای Backup برای ویندوز کلاینت ویستا هم قابل استفاده شد. تمامی Restore Point ها در پوشه ای به نام System Volume Information بر روی هر کدام از پارتیشن های ما قرار می گیرند. یکی از مزایای اصلی که Volume Shadow Copy Service به ما ارائه می دهد امکان داشتن Recycle Bin در شبکه است.


معرفی مقدماتی سرویس Volume Shadow Copy Service  یا VSS  -  قسمت دوم



معرفی مقدماتی سرویس Volume Shadow Copy Service  یا VSS  -  قسمت دوم



کاربرد پوشه System Volume information چیست ؟



از بحث و مشکل اصلی خودمان دور نشویم ، قرار شد کاری کنیم که مشکل Backup گیری از فایل های در حال استفاده حل شود و گفتیم که VSS این مشکل را حل می کند. روش کار VSS را هم توضیح دادیم ، روش کاری هر چند پیچیده است اما بصورت ساده زمانیکه از VSS استفاده می کنید

اگر فایلی در حال اجرا باشد سیستم عامل بصورت موقتی و در وهله زمانی بسیار بسیار کمی از فایل مورد نظر یک Snapshot تهیه می کند و در واقع این Snapshot یک کپی فقط خواندنی از اطلاعات است که بر روی هارد دیسک شما قرار می گیرند و نرم افزارهای Backup گیری از آن برای Backup گیری به جای فایل اصلی استفاده می کنند. به این کپی فقط خواندنی Shadow Copy گفته می شود.

دقت کنید که این تکنولوژی انحصاری شرکت مایکروسافت نبوده و توسط این شرکت خریداری شده است اما در حال حاضر جزو جداناشدنی سیستم عامل مایکروسافت است. با استفاده از VSS دیگر هیچوقت نیازی به بستن نرم افزارها و فایل های خود برای Backup گیری نخواهید بود.

در قسمت قبلی اشاره کردیم که مایکروسافت تکنولوژی VSS را از یک شرکت Third Partyخریداری کرد و به نام خودش در محصولاتش قرار داد. یکی از مهمترین مشکلات اولیه ای که در VSS وجود داشت این بود که شرکت های تولید کننده سخت افزار و نرم افزار ویژه Backup گیری نمی توانستند با تکنولوژی انحصاری مایکروسافت ارتباط برقرار کنند که در چنین مواردی مایکروسافت برای اینکه شرکت های جانبی بتوانند با تکنولوژی های آن کار کنند برای آنها یک API برای هماهنگ شدن با تکنولوژی VSS ارائه داد.

با ارائه شدن API مایکروسافت شرکت های تولید کننده سخت افزارها و نرم افزارهای Backup گیری هم به سمت استفاده از آن آمدند و حدس بزنید چه اتفاقی افتاد ؟ نتیجه به این شکل بود که سیستم عامل ، نرم افزار Backup گیری و تجهیزات ذخیره سازی سخت افزاری اعم از SAN و NAS همه و همه VSS را پشتیبانی می کردند. این یعنی راهکارهای Backup گیری شما بسیار بسیار انعطاف پذیر می شود و شما نیاز به متوقف کردن هیچ چیزی و هیچ کاری برای Backup گیری نخواهید بود.

اما آنقدرها سریع هم مشکلات برطرف نشد ، زمانیکه با معرفی شدن ویندوز سرور 2003 قابلیت VSS معرفی شد ، همه کارشناسان واقعا از وجود چنین تکنولوژی لذت بردند اما یک مشکل در ابتدای کار وجود داشت ، در سال 2003 که این تکنولوژی معرفی شد همه قطعات پازل کامل نبود. نرم افزار Backup گیری شما از VSS پشتیبانی می کرد اما Exchange Server 2000 از VSS پشتیبانی نمی کرد ، یا اینکه Exchange Server 2003 از VSS پشتیبانی می کرد اما هنوز دستگاه SAN Storage شما از VSS پشتیبانی نمی کرد.

اما امروزه تقریبا همه تجهیزات نرم افزاری و سخت افزاری Backup گیری از VSS پشتیبانی می کنند و تقریبا نمی توان به هیچ عنوان از خیر تکنولوژی به این خوبی گذشت. اما قرار شد ما در ITPRO فقط استفاده کننده نباشیم ، شما تا کنون قطعا از تکنولوژی VSS استفاده کرده اید اما ممکن است اصلا ندانید که در پس زمینه چگونه فرآیند کاری این روش انجام می شود ، به عنوان یک ITPRO ایرانی باید با زیرساخت این تکنولوژی آشنایی نسبی داشته باشید تا زمانیکه سخت افزارها یا نرم افزارهای Backup گیری شما دچار مشکل شدند بتوانید مشکل آنها را تشخیص بدهید.


نحوه کار سرویس Volume Shadow Copy



برای اینکه تکنولوژی و راهکار Volume Shadow Copy Service به درستی کار کند این سرویس به چهار عنصر اصلی نیاز دارد که باید هر کدام به درستی کار کنند تا فرآیند Backup گیری ما به درستی کار کند. ، این چهار عنصر به VSS Coordination Service ، VSS Requester ، VSS Writer و VSS Provider هستند. اگر می خواهید درک کنید که این چهار عنصر چگونه با هم کار می کنند باید بدانید که هر کدام از آنها به تنهایی چه کاری در سیستم عامل انجام می دهند که به شرح زیر می باشد :

  1. VSS Coordination Service : ترجمه این واژه سرویس هماهنگ کننده VSS است ، این سرویس اولین سرویسی است که در سیستم عامل ویندوز سرور 2003 معرفی شد ، سرویس Coordinator همانطور که از نامش هم پیداست وظیفه اش اطمینان پیدا کردن از این است که تمامی اجزای موجود در تکنولوژی VSS می توانند به درستی با هم ارتباط برقرار کنند و با هم کار کنند.
  2. VSS Requester : ترجمه آن درخواست دهنده است. درخواست دهنده VSS یا VSS Requester در واقع نرم افزار یا برنامه ای است که دستورات مربوط به Shadow Copy ها مثل Import کردن ، قطع کردن فرآیند و یا حذف کردن Shadow Copy ها را صادر یا درخواست می دهد. در واقع به زبان ساده تر این نرم افزار همان نرم افزار Backup گیری است که ما از آن استفاده می کنیم ، ابزار Backup گیری که در ویندوز استفاده می شود در واقع یک VSS Requester است و یا نرم افزارهایی مثل System Center Data Protection Manager یا SCDPM هم یک VSS Requester هستند. تقریبا امروزه تمامی نرم افزارهایی که برای Backup گیری از ویندوز استفاده می شوند یک VSS Requester هستند که از جمله آنها می توانیم به Acronis یا Symantec Backup Exec اشاره کنیم.
  3. VSS Writer : کاربرد این عنصر تضمین کردن وجود داده ای قابل اعتماد و سازگار برای Backup گیری است. این عنصر از VSS در واقع آن چیزی است که شما باید در نرم افزار کاربردی خودتان داشته باشید و نرم افزارهایی مثل SQL Server و یا Exchange Server از این قابلیت باید پشتیبانی کنند. البته در ویندوز سرور یک VSS Writer بسیار ساده بصورت Built-In وجود دارد که برای کاربردهای Backup گیری ساده استفاده می شود اما معمولا شرکت هایی که تولید کننده نرم افزارهای کاربردی در دنیا هستند بصورت ذاتی قابلیت VSS Writer را درون خودشان تعبیه می کنند تا مشکلی پیش نیاید ، از جمله این نرم افزارها می توان به Oracle اشاره کرد. بصورت خلاصه اگر می خواهید مطمئن باشید که در زمان Backup گیری داده ای وجود دارد که باید Backup گرفته شود از VSS Writer استفاده می کنیم.
  4. VSS Provider : وظیفه این قسمت از VSS نگهداری و مدریت Shadow Copy های گرفته شده بر روی سیستم عامل است. این فرآیند هم می تواند بصورت نرم افزاری و هم می تواند بصورت سخت افزاری انجام شود. در ویندوز سرور و حتی ویندوزهای کلاینت سرویسی به نام Microsoft Software Shadow Copy Service Provider وجود دارد که این فرآیند را بصورت نرم افزاری بر روی سیستم عامل انجام می دهد هر چند این فرآین ممکن است کمی سیستم عامل را کند کند. زمانیکه شما از یک SAN Storage برای Backup گیری استفاده می کنید بعضا این دستگاه برای خودش یک VSS Provider دارد که شما باید بصورت دستی نرم افزار آن را بر روی سیستم عامل نصب کنید تا بصورت بسیار بهینه بتواند با دستگاه SAN کار کند و بار کاری بر روی سیستم عامل ایجاد نکند. تجهیزات SAN این کار را به بهترین شکل ممکن انجام می دهند. ITPRO باشید


خوب حالا که با ساختار کلی Volume Shadow Copy Service یا VSS آشنا شدید احتمالا درک کرده اید که یک برنامه Backup گیری یا یک فرآیند Shadow Copy چگونه انجام می شود و می توانید براحتی از تکنولوژی VSS با دانستن زیرساخت آن Backup بگیرید. حالا می خواهیم مثال و موارد بالا را به زبان ساده تری برای شما بیان کنیم ، مثال خودمان را در خصوص Backup گیری از پایگاه داده می زنیم تا بهتر موضوع را متوجه شوید :

روش کار نرم افزارهای Backup گیری و استفاده از VSS



  1. در مرحله اول شما توسط نرم افزار Backup گیری ( VSS Requester ) دستور Backup گیری از پایگاه داده را صادر می کنید یا بهتر بگوییم دستور ایجاد شدن Shadow Copy را صادر می کنید.
  2. نرم افزار پایگاه داده شما ( VSS Writer ) پایگاه داده شما را بصورت کاملا موقتی و در وهله زمانی بسیار پایین Freeze می کند ، این دقیقا همان فرآیندی است که می خواهیم مطمئن شویم داده جدیدی به فایل مورد نظر اضافه نشدن است و یک لحظه از کل فایل اصلی کپی برداری یا Snapshot می گیریم ، اگر می خواهید یک تصویر جالبتر از این موضوع داشته باشید فرض کنید که قرار است یک لحظه در آب شیرجه بزنید و مجبور هستید نفس خودتان را حبس کنید ، این دقیقه اتفاقی است که برای پایگاه داده شما در هنگام ایجاد Shadow Copy انجام می شود. در واقع فرصت ایجاد کردن Snapshot ایجاد می شود. در این لحظه پایگاه داده نمی تواند داده ای در دیتابیس وارد کند.
  3. دستگاه SAN Storage شما ( VSS Provider ) از داده های موجود یک Snapshot می گیرد.
  4. نرم افزار پایگاه داده ( VSS Writer ) متوجه می شود که یک Shadow Copy از داده های آن گرفته شده است و می تواند مجددا اطلاعات را درون پایگاه داده وارد کند.
  5. نرم افزار Backup گیری ( VSS Requester ) به شما اطلاع می دهد که Shadow Copy شما به درستی انجام شد.


معرفی مقدماتی سرویس Volume Shadow Copy Service  یا VSS  -  قسمت سوم



حساس ترین و البته مهمترین قسمت این فرآیند زمانی است که شما به VSS Writer می گویید که تمامی فرآیند های Write بر روی دیتابیس را متوقف کند ، این فرآیند همانطور که قبلا هم اشاره کردیم بسیار کوتاه و در حد چند میلی ثانیه است ، در این مدت زمان بسیار کوتاه تمامی فرآیند های IO پایگاه داده متوقف و در صف پردازش قرار می گیرند و بعد از اینکه فرآیند Shadow Copy تمام شد مجددا ارسال و اجرا می شوند. به همین دلیل گرفتن Shadow Copy از سیستم باعث کندی و کاهش کارایی سیستم عامل و نرم افزار نمی شود . حتی این مورد در ساختار VSS تعریف شده است که اگر فرآیند VSS بیشتر از 10 ثانیه طول کشید که معمولا هیچوقت به این شکل نیست ، برای اینکه کارایی سیستم دچار مشکل نشود VSS متوقف و به زمانی دیگر موکول می شود.

معرفی مقدماتی سرویس Volume Shadow Copy Service  یا VSS  -  قسمت سوم

تمامی این فرآیند ها توسط سرویس هماهنگ کننده یا VSS Coordinator انجام می شود ، این سرویس بسیار پیچیده تر از آن چیزی است که شما تصور می کنید. برای درک بهتر تصور کنید که شما باید تمامی Volume هایی که در حال حاضر با پایگاه داده در ارتباط هستند و اطلاعات در انها وجود دارند را بررسی کنید و هیچ چیزی نباید از قلم بیوفتند.

همچنین VSS Writer هم به مدت زمان بسیار کمی نیاز دارد تا فرآیند های در حال اجرا را درون دیسک قرار بدهد تا تبادلات در حال انجام مشکلی نداشته باشند و سپس این مورد را به Coordinator اطلاع بدهد. همچنین شما در این لحظه باید به VSS Provider هم اعلام کنید که می خواهید یک Shadow Copy از Volume خود بگیرید تا VSS Provider بتواند به سرعت مقدمات انجام کار را فراهم کند.

اما ممکن است یک ابهام در ذهن شما پیش بیاید که چطور ممکن است در عرض کمتر از چند ثانیه یک کپی فیزیکی از یک پایگاه داده 1 ترابایتی تهیه کنیم ؟ اینکار حتی با استفاده از سریعترین دیسک ها و تکنیک های کپی امروزی هم امکانپذیر نیست ! نکته اصلی کار در اینجاست که همانطور که گفتیم ما نمی توانیم از فایل های در حال استفاده کپی برداری کنیم اما همیشه همه قسمت های یک فایل در حال استفاده نیستند و بعضا همه قسمت های یک پایگاه داده هم در حال استفاده نیستند .

مهمترین کاری که VSS Provider برای ما انجام می دهد علامت گذاری بلوک های داده ای است که در حال حاضر توسط سیستم در حال استفاده هستند و نه بلوک هایی که قبلا Backup گیری شده اند و یا در حال استفاده نیستند ، سیستم Backup گیری در ابتدای کار از کلیه پایگاه داده Backup گیری می کند و سپس بررسی می کند که کدام بلوک جدید از پایگاه داده بر روی دیسک اضافه شده است

و از همان بلوک داده Backup گیری می کنند و نه از همه داده ها و این فرآیند بسیار سریع انجام می شود. شما با استفاده از VSS می توانید متوجه شوید که داده های شما در وهله های زمانی مختلف چه تغییراتی داشته اند چون همه کپی های لحظه ای آنها وجود دارد ، سیستم Restore Point ویندوز نمونه بارزی از این مثال است. امیدوارم مورد توجه شما قرار گرفته باشد.


محمد نصیری
محمد نصیری

هکر کلاه سفید ، کارشناس امنیت اطلاعات و ارتباطات

هکر کلاه سفید ، کارشناس امنیت اطلاعات و ارتباطات و کشف جرائم رایانه ای ، بیش از 12 هزار ساعت سابقه تدریس در بیش از 40 سازمان دولتی ، خصوصی و نظامی ، علاقه مند به یادگیری بیشتر و عاشق محیط زیست ، عضو کوچکی از مجموعه توسینسو

31 خرداد 1394 این مطلب را ارسال کرده

نظرات