Skip navigation

Manage categories

Close

Create and manage categories in Cloud Tools. Removing a category will not remove content.

Categories in Cloud Tools
Add a new category (0 remaining)

Manage Announcements

Close

Create and manage announcements in Cloud Tools. Try to limit the announcements to keep them useful.

Announcements in Cloud Tools
Subject Author Date Actions

Products

Screenshot of Cloud Cost Manager in action

Quest® Cloud Cost Manager is a cloud billing and usage management application.


Desktop Edition

The Desktop Edition is a Windows application that helps you analyze your account usage and find underutilized resources.

Download Free Beta for Windows XP/Vista/7

Or, Learn More.


Freeware Edition

The Freeware Edition is a SaaS application that lets you keep an eye on your cloud spending, set budgets, and receive email notifications.

Learn More

Screenshot of Cloud Storage Manager for Azure in action

Quest® Cloud Storage Manager for Azure delivers an intuitive interface to browse storage infrastructure, map local drives to Azure storage space, and optimize storage usage. Learn More

Download Trial Ready to Buy? for Windows XP/Vista/7

Screenshot of Spotlight on Azure in action

Spotlight® on Azure is an immediately configurable performance monitor for your Azure environment that clearly displays application performance at a glance. Learn More

Download Trial Ready to Buy? for Windows XP/Vista/7

Recent Activity

Refresh this widget
Shay Yannay replied to Re: setting content-type 6 days ago
jerryr asked setting content-type 1 week ago

Recent Blog Posts

Refresh this widget
0

One of the great features that the Blobs Service in Azure provides, is the ability to create snapshots for a given blob.
In the following I will elaborate on how to create a snapshot and how to get all the snapshots for a given blob.
Needless to say that snapshot make the application more robust and has the ability to add “transaction” behavior when manipulating the blob data (point of failure return to base blob).
Another useful case could be creating a snapshot to a cloud drive (mounted as NTFS to a blob) and restoring/imaging when needed.

 

Creating a snapshot

 

First lets access the storage service

(Note that the code samples are using the Microsoft.WindowsAzure.StorageClient namespace)

 

string connectionString = String.Format("DefaultEndpointsProtocol=https;AccountName={0};
AccountKey={1}"
,storageInfo.StorageName, storageInfo.PrivateKey);

            CloudStorageAccountaccount = CloudStorageAccount.Parse(connectionString);

 

blobClient = account.CreateCloudBlobClient();

 

Get a reference to blob

CloudBlob baseblob=blobClient.GetBlobReference("testcontainer/baseblob.txt");

Create a snapshot of the blob

CloudBlob snapshot = baseblob.CreateSnapshot();

 

Let verfy that we managed to create a snapshot using Cloud Storage Manger:

 

Capture1.PNG

Capture2.PNG

 

When creating the snapshot the blob returned holds a Snapshot property of type DateTime that can be used for future access.

DateTime timestamp = (DateTime)snapshot.Attributes.Snapshot;

 

I can use the timestamp to get a reference to the snapshot in the following way:

CloudBlob snapshot2 = new CloudBlob("testcontainer/baseblob.txt", timestamp, blobClient);

 

List all snapshots

 

Getting all the snapshot for given blob is a bit more tricky since a snapshot blob is referred as an ordinary blob in the blobs service.
The only hint is the parameter SnapshotTime in the blob that can indicate if it’s a regular blob or snapshot one.


So I will need to traverse all the blobs in the container and collect only the blobs that are typed as snapshots and has the URI to my base blob.

 

BlobRequestOptions options = new BlobRequestOptions()

            {

                BlobListingDetails = BlobListingDetails.Snapshots,

                UseFlatBlobListing = true

            };

 

IEnumerable<IListBlobItem> items = blobClient.GetContainerReference("testcontainer").ListBlobs(options);

items.Where(item=> ((CloudBlob)item).SnapshotTime.HasValue&& item.Uri.Equals(baseblob.Uri));

 

Point of interest

On of the cool feature Cloud Storage Manager offers is the ability to create and restore snapshot for an entire directory in the Azure blob service.


Capture3.PNG

0

Windows Azure Blob Service is arranged by the following resources:

  1. Storage account
  2. Containers
  3. Blobs

A storage account contains many containers and each container hold many blobs.

 

As you might know resources in windows azure storage services are exposed via REST api’s.

Accessing the storage data is available using the azure storage client sdk.

 

The Azure Storage provides a well defined URI scheme for the blobs service:

<http|https>://<account-name>.blob.core.windows.net/<resource-path>

For example : http://queststorage.blob.core.windows.net/images/landscape/banner.png.

 

Breaking the above URL expose the following:

Storage account=queststorage

Containers=Images,landscape ????

Blob=banner.png

 

We can see that something more is missing in our resource to URI match.

Another structure that is merely semantics in the blobs service called Directory.

A Directory is nothing but a prefix to the blob name in order to provide some hierarchy structure in the blobs service world.

 

Lets rephrase the URL to storage resource again:

Storage account=queststorage

Containers=Images

Blob=landscape/banner.png

 

In the following I will demonstrate how you can easily browse the data in your storage account and even share a link to one of your blob using
Cloud Storage Manager.

 

Lets open Cloud Storage Manager:

  1. Add a storage account

    uri1.PNG
  2. Copy the URL to Clipboard

    uri2.PNG
  3. Open the link in the browser (of course double clicking the blob item will open it locally).
    uri3.PNG
0

Recent announcement from MS indicates that Azure storage (blobs/tables/queues) rate will decreased from 0.15$ GB Per Month to 0.14$ GB per Month.

 

Just to feel the numbers for 1TB we will receive a discunnt of 10$ (0.15$GB/Month*1000 -0.14$GB/Month = 10$).

Moreover MS provides additional discounts on storage account that is more than 1TB as describes in the following table:

 

Storage Volumes (Monthly)Price rate (Monthly)DiscountPrice (Monthly)
<1TB0.14$ per GB0%up to 140$
1-50TB0.125$ per GB10.7%125$-6250$
51-500TB0.112$ per GB20%
501TB-1000TB0.103$ per GB26.4%
1001TB - 5 Petabyte0.085$ per GB39.3%
Above 5Petabytecall MScall MS
0

Today we going to talk about a new feature in Windows azure called Geo-Replication.

The replication scope is referring to the blobs and tables in Windows Azure Storage.

Prior to this feature replication was more or less hidden in the background at the azure storage services.

For durability any information was replicate 3 times inside the storage account in order gain high availability and consistency

during read & write operations. It is important to understand that no extra charge was made on the local replications.

Since the data is locally replicated only at the data center itself, major application could easily run in to a situation of down time

at the data center. That by itself gave the high motivation for persisting the data in couple of data centers.

With that notion the very nice feature of Geo-Replication was was born.


Geo Replication locations

Azure storage keeps the data in two location.

The main location is refer to as the primary location and the replicated one is called the secondary location.

Currently the feature support replicating data in the same region.

For example data stored in North Central US data center could be replicated in South Central US data center.

Moreover geo replication is enabled by default so any data stored in the a storage account will be replicated
to another data center in that region (you can disable it by contacting the azure support. in the the future you will be able to specfy exactly
the secondary location)


How it works ?

Any data stored in the primary location is replicated 3 times in the same fault domain.

Then asynchronously (to prevent performance problems) the data is replicated to the secondary location again three times.

The primary location needs to talk to the secondary only while updating the recent data. By that restoring the data from the secondary location
will be transparent.

 

Handling failovers

In case that a major disaster occurred in the primary location restoring will first be made in the same location (one of the 3 nodes in local fault domain).

If restoring the data was unsuccessful the secondary location will be used. The Uri for the data will remain the same.

This is important to prevent any storage account Uri modification in the application. The main DNS name of the primary location will be used to redirect the traffic to the secondary storage location. The secondary location will then be the primary location (in case you wonder what is the new secondary location, in the geo replication current version a secondary location will be created in the same data center).

 

Final note

Windows storage services has taken another strong step for becoming a very reliable data warehouse in the cloud.
Moreover geo replication will probably going to expand to replication of data in multiple region at data centers across the world.

1

As you might know performance counters are well known and categories.

By just opening perfmon.exe on the local windows machine you can view lots of counters that concealed endless of information regarding the main components and resources of your OS (CPU, Memory, Network etc..).

Since my application is deployed in the cloud monitoring can be tricky.

 

Well I can always do remote desktop to my role instance (check the following blog on RDP in Azure ) and launch perfmon.

 

Now image that you have 10 machines (scattered around the world each doing something else) RDP each one can be time demanding task.

Moreover as you might know Azure diagnostics enables to save the performance counters guttered into a predefined storage account.

The data is accessibly and persistence but finding the problems just by queering the table wont reveal any problem because of the huge amount of data guttered.

 

Luckily Spotlight on Azure has a great feature that enables to configure remotely performance counters and get aggregations capabilities from the role instance level up to the deployment level. One can compare the counters graphs over time and easily spot problems.

 

So let’s get started

After choosing the role instance from the tree view navigate to the Custom tab.

Here you can view the current pre-defined counters that ships with the product. just by viewing those counters lots of insights can be deducted on your instance/role/deployment.

 

For this demonstration I am interesting in testing the behavior of the Web Role Asp.Net application.

Currently my web role is responding to frequent user calls. My goal is to analyze the Asp.Net web application performance.

 

Configuring the counters:

  1. Press the Configure button.
    Capture2.PNG
  2. From the performance categories select Asp.Net application.
    Capture3.PNG
  3. Add the following counters:

 

    • ASP.NETApplications - Requests/Sec – any low value than the amount of request generated per seconds is queue in the server
      other than that this counter is very important in order to measure the rate a witch requested are handled.
    • ASP.NETApplications - Request Execution Time – in milliseconds that takes to render the last requested page and then transmit it to the user. Load testing can easily show how the time of processing the execution of a request can be increased.
    • ASP.NETApplications – Session total – current sessions opened. Usually the number of session is closed after 20 minutes. But the general count is by the cookies of the users.

 

    Lets view the data:

Capture4.PNG

correlating the network counter with counters from other categories can show how well the machine function.

For example selecting the Processor User time % can show the CPU utilization against the Web server operations

Capture7.PNG

 

Finishing our discussion any custom created counters (performance counter create by code using the diagnostics assembly in .net) can also be added for monitoring using Spotlight on Azure.

from the configuration window check the following:

Capture6.PNG

More

Actions

Notifications

Facebook

Twitter