Traditional Culture Encyclopedia - Traditional stories - Brief introduction of traditional storage virtual machine architecture

Brief introduction of traditional storage virtual machine architecture

Virtualization has changed the way computers use storage. Just as a physical machine is abstracted into a virtual machine (VM), a physical storage device is abstracted into a virtual disk. Today, let's talk about storage virtualization technology. How is the virtual disk realized?

Implementation of virtual disk

As we know, there are three main methods for server to expand storage: direct attached storage (DAS), storage area network (SAN) and network attached storage (NAS). So, which storage type can be used to implement virtual disks?

In a virtualized environment, a hypervisor like VMWare must allocate storage space to many virtual machines at the same time. In this process, we need to divide the physical storage resources into virtual disks before allocating them to VM.

Obviously, we can't connect physical disks directly to the virtual machine through DAS, if so, we will need too many physical disks. SAN provides storage resources in the form of logical units (LUNs), but the number of virtual machines in the virtual environment is very large, and the number of LUNs is not enough to support so many virtual disks.

More importantly, virtual disks are shared by a large number of virtual machines. Because virtual machines need to be created, deleted or migrated at any time, you need to enjoy storage space when migrating virtual machines, and only the original data will not be lost. Neither DAS nor SAN is suitable for * * * to enjoy storage.

Considering the problem of resource allocation and * * * sharing, hypervisor implements virtual disks in the form of NAS. VMware usually uses VMFS (Virtual Machine File System) or NFS protocol to realize virtual disks, and VMFS file system is a protocol specifically for virtual machine environment.

The data of each virtual machine is actually a pile of files, the virtual disk file (VMDK file) of the most important file, as well as the exchange partition file (VSWP file, equivalent exchange), non-volatile memory (NVRAM file is equivalent to BIOS) and so on. The IO operation of each virtual machine to the virtual disk is actually a reading and writing operation to the virtual disk file.

The design, construction and optimization of virtual server environment allow multiple virtual machines to access the integrated cluster storage pool, thus greatly improving the utilization of resources. By using and realizing resource sharing, administrators can directly benefit from higher efficiency and storage utilization.

So how do we use virtual disks in cloud computing?

Instance storage

One of the most important ways to use virtual disks is instance storage. Each virtual machine is a virtual machine instance, and the hypervisor provides a simulated hardware environment in each instance, including CPU, memory and disk. In this way, the virtual disk is a part of the virtual machine instance, just like the physical world. When the virtual machine is deleted, the virtual disk will also be deleted.

In this example storage model, the storage relationship between virtual disks and virtual machines is actually DAS storage. But the underlying implementation of virtual disk, we say, is realized in the form of NAS. The function of the hypervisor is to store the storage model of the VM layer, which is the lower layer of the virtual machine and separated from the implementation protocol (VMFS or NFS).

VMFS protocol virtualizes storage resources and then allocates virtual machines.

Volume storage

Instance storage has its limitations, and developers usually want to separate instance data, such as OS and some installed server applications and user data, in order to preserve user data when rebuilding VM.

This demand leads to another storage model: volume storage. Volume is the main unit of storage, which is equivalent to virtual disk partition. It is not part of the virtual machine instance, but can be regarded as an external storage device of the virtual machine.

The volume can be unmounted from one virtual machine and then attached to another virtual machine. In this way, the separation of instance data and user data is realized. OpenStack cinder is an implementation of volume storage.

Besides instance storage and volume storage, we finally mentioned another special virtual storage: object storage.

Object storage

Many cloud applications need to share data between different virtual machines, which often need to span multiple data centers, and object storage can solve this problem. What are the basic functions of cloud computing IaaS management platform in the previous article? The object store is already in the.

In the object storage model, data is stored in a bucket, which can also be called "bucket" because of its literal meaning. We can use the hard disk as an example. The object is like a file, and the storage part is like a folder (or directory). Objects and storage segments can be found by Uniform Resource Identifiers (URIs).

The core design idea of object storage is actually virtualization, which is the physical storage location of files, such as volumes, directories, disks and so on. Virtualization is a bucket that virtualizes files into objects. For the application layer, it simplifies the access to data and shields the heterogeneity and complexity of the underlying storage technology.

Object storage model

NAS and object storage have their own advantages.

Of course, you may ask, is NAS storage technology also a problem that can solve the problem of data enjoyment? Due to the size and cost advantages of object storage, many cloud environments use object storage instead of NAS.

Because object storage will be distributed on multiple nodes, the latest data is not always available, so the data consistency of object storage is not strong. If there is a strong consistency requirement, then you can use NAS. At present, in the cloud computing environment, NAS and object storage exist in * * *.

Like NAS, object storage is a software architecture, not a hardware architecture. Applications directly access the object store through REST API. Common object storage includes Amazon S3 and Swift of OpenStack.

label

In the practical application of cloud platform, we need to use different virtualization storage technologies reasonably according to our actual situation.

For unstructured static data files, such as audio and video, pictures, etc. We generally use object storage.

For system mirroring and application, we need to use cloud host instance storage or volume storage.

For dynamic data generated by applications, we generally need to use cloud database to manage the data.