RU150421U1 - SYSTEM OF PLACING AND REMOVING FILES OF DIVIDED SERVERS - Google Patents

SYSTEM OF PLACING AND REMOVING FILES OF DIVIDED SERVERS Download PDF

Info

Publication number
RU150421U1
RU150421U1 RU2014115058/08U RU2014115058U RU150421U1 RU 150421 U1 RU150421 U1 RU 150421U1 RU 2014115058/08 U RU2014115058/08 U RU 2014115058/08U RU 2014115058 U RU2014115058 U RU 2014115058U RU 150421 U1 RU150421 U1 RU 150421U1
Authority
RU
Russia
Prior art keywords
file
files
storage device
dedicated servers
dedicated
Prior art date
Application number
RU2014115058/08U
Other languages
Russian (ru)
Inventor
Павел Владимирович Емельянов
Кирилл Сергеевич Коротаев
Александр Геннадьевич Тормасов
Станислав Станиславович Протасов
Сергей Михайлович Белоусов
Original Assignee
Общество с ограниченной ответственностью "Параллелз" (ООО "Параллелз")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/065,710 external-priority patent/US9286310B1/en
Application filed by Общество с ограниченной ответственностью "Параллелз" (ООО "Параллелз") filed Critical Общество с ограниченной ответственностью "Параллелз" (ООО "Параллелз")
Application granted granted Critical
Publication of RU150421U1 publication Critical patent/RU150421U1/en

Links

Images

Abstract

1. Система размещения и извлечения файлов выделенных серверов, содержащая:основной компьютер, обеспечивающий координированный доступ к ресурсам компьютера;хранилище данных, содержащее:- совокупность файлов выделенных серверов, выполненная с возможностью поддержки сервисом файловой системы;- совокупность файлов выделенных серверов, расположенных в индивидуальных областях памяти серверов;- кэш-память дискового запоминающего устройства, выполненная с возможностью хранения используемых в текущее время файлов выделенных серверов;- базу данных, хранящую данные внутренних системных имен файлов выделенных серверов;- блок управления и поддержки пользователя, сконфигурированный с возможностью сбора статистики обращений к файлам выделенных серверов,в которой:блок управления и поддержки пользователя выполнен с возможностью копирования файла из индивидуальных областей памяти в кэш-память дискового запоминающего устройства на основе статистики обращений к файлам и данных внутренних системных имен файлов;блок управления и поддержки пользователя выполнен предоставляющим выделенным серверам доступ к данным, хранящимся в кэш-памяти дискового запоминающего устройства, при этом данные внутренних системных имен выделенных серверов содержат атрибуты контрольной суммы файлов и длины файлов.2. Система по п. 1, в которой блок управления и поддержки пользователя выполнен обеспечивающим совместное использование файла выделенных серверов из кэш-памяти дискового запоминающего устройства в том случае, если внутренние данные файлов совпадают с используемыми файлами, хранящимися в базе данных.3. Система по п. 1, в котор�1. A system for hosting and extracting files of dedicated servers, comprising: a host computer providing coordinated access to computer resources; a data store containing: - a collection of files of dedicated servers configured to support the file system service; - a collection of files of dedicated servers located in individual areas of server memory; - cache memory of a disk storage device configured to store currently used files of dedicated servers; - database data that stores data of internal system names of files of dedicated servers; - a user control and support unit configured to collect statistics of accesses to files of dedicated servers, in which: a user control and support unit is configured to copy the file from individual memory areas to the cache memory a disk storage device based on statistics of file accesses and data of internal system file names; the control and user support unit is designed to provide Highlighted servers access to data stored in the disk cache memory, the internal data name system dedicated servers contain checksum and file attributes faylov.2 length. The system of claim 1, wherein the user control and support unit is configured to share a dedicated server file from a cache of a disk storage device if the internal file data matches the files used in the database. The system of claim 1, wherein

Description

Область техники, к которой относится полезная модельThe technical field to which the utility model relates.

Полезная модель относится к виртуальным частным серверам (от английского - Virtual Private Server, VPS). Более точно, полезная модель относится к кэшированию (т.е. процедуре размещения и извлечения из кэш-памяти) общих файлов виртуальных частных серверов.The utility model relates to virtual private servers (from English - Virtual Private Server, VPS). More specifically, the utility model relates to caching (i.e., the procedure for placing and retrieving from the cache) shared virtual private server files.

Уровень техникиState of the art

Значительная коммерческая важность серверных технологий обусловлена популярностью и успешностью сети Интернет. Обычно индивидуальное серверное приложение (т.е. компьютерная программа) выполняется на выделенном физическом (т.е. реально существующем) хост-компьютере, обслуживающем клиентские запросы. Однако предоставление отдельного физического хост-компьютера для каждого серверного приложения требует значительных финансовых затрат и неэффективно.The significant commercial importance of server technology is due to the popularity and success of the Internet. Typically, an individual server application (i.e., a computer program) runs on a dedicated physical (i.e., really existing) host computer serving client requests. However, providing a separate physical host computer for each server application is costly and inefficient.

Например, поставщики интернет-услуг часто предоставляют коммерческие сервисы хостинга, при этом каждому потребителю обычно предоставляется выделенный физический хост-компьютер, на котором выполняется серверное приложение. Однако нередко потребителю, приобретающему услуги хостинга, не требуется вычислительная мощность целого хост-компьютера, и потребитель не склонен оплачивать его использование. Как правило, индивидуальному потребителю нужна только часть ресурсов хост-компьютера: часть вычислительной мощности, часть пространства памяти его запоминающих устройств и т.п.For example, Internet service providers often provide commercial hosting services, and each consumer is usually provided with a dedicated physical host computer on which the server application runs. However, often the consumer who purchases hosting services does not need the processing power of the whole host computer, and the consumer is not inclined to pay for its use. As a rule, an individual consumer needs only part of the resources of the host computer: part of the processing power, part of the memory space of his storage devices, etc.

В связи с этим, на одном физическом компьютере желательно разместить множество серверных приложений. Для этого для каждого серверного приложения требуется приложение-контейнер - изолированный виртуальный частный сервер или выделенный сервер, имитирующий выполнение серверного приложения на выделенном физическом хост-компьютере. Такая организация вычислений не может быть реализована обычной серверной технологией, поскольку вместо выполнения отдельных дискретных процессов виртуальный частный сервер должен содержать множество как-бы не взаимодействующих друг с другом процессов. Каждый контейнерный процесс выполняет различные элементы функциональности, требуемой потребителю, и каждый процесс использует принадлежащие ему файлы, хранящиеся в изолированной частной зоне виртуального частного сервера (выделенного сервера или «контейнера»).In this regard, it is desirable to host multiple server applications on one physical computer. For this, for each server application, a container application is required - an isolated virtual private server or a dedicated server that simulates the execution of the server application on a dedicated physical host computer. Such an organization of calculations cannot be implemented by conventional server technology, because instead of executing separate discrete processes, a virtual private server must contain many processes that seem to not interact with each other. Each container process performs various elements of the functionality required by the consumer, and each process uses the files belonging to it, stored in the isolated private zone of the virtual private server (dedicated server or “container”).

Таким образом, другая проблема организации множества виртуальных частных серверов на едином физическом хост-компьютере состоит в предоставлении каждому виртуальному частному серверу отдельной файловой системы. Файловая система представляет собой организованную совокупность данных (в хранилище данных), хранящуюся на одном или более физических запоминающих устройствах, например, накопителях на жестких дисках или RAID-накопителях (от английского RAID - Redundant Array of Inexpensive Disks, избыточный массив недорогих дисков).Thus, another problem in organizing multiple virtual private servers on a single physical host computer is to provide each virtual private server with a separate file system. A file system is an organized collection of data (in a data warehouse) stored on one or more physical storage devices, for example, hard disk drives or RAID drives (from the English RAID - Redundant Array of Inexpensive Disks, an excess array of inexpensive disks).

Входящее в состав системы хранилище данных может содержать: совокупность файлов выделенных серверов, поддерживаемую сервисом файловой системы. При этом, файл выделенных серверов могут быть расположены в индивидуальных областях памяти серверов. Также хранилище данных может иметь в своем составе кэш-память дискового запоминающего устройства, выполненная с возможностью хранения используемых в текущее время файлов выделенных серверов. На хранилище данных расположена база данных, хранящая данные внутренних системных имен файлов выделенных серверов. Кроме того, система содержит блок управления и поддержки пользователя, сконфигурированный с возможностью сбора статистики обращений к файлам выделенных серверов.The data warehouse included in the system may contain: a collection of dedicated server files supported by the file system service. In this case, a file of dedicated servers can be located in individual areas of server memory. Also, the data warehouse may include a cache memory of a disk storage device, configured to store currently used files of dedicated servers. The data warehouse contains a database that stores data of internal system file names of dedicated servers. In addition, the system contains a control and user support unit configured to collect statistics on accesses to files of dedicated servers.

Как правило, данные хранятся в виде файлов, например, текстовых документов, таблиц с данными, исполнимых программ и т.п. Файлы хранятся во множестве ″элементов памяти″ запоминающего устройства, для обозначения которых часто используют термины ″дисковый блок″ или ″единица дисковой памяти″ (кластер).As a rule, data is stored in the form of files, for example, text documents, data tables, executable programs, etc. Files are stored in a variety of ″ memory elements ″ of the storage device, often referred to as the terms ″ disk block ″ or ″ unit of disk memory ″ (cluster).

Предоставление отдельного физического устройства для хранения файловой системы каждого виртуального частного сервера дорого и неэффективно. Поэтому каждому виртуальному частному серверу (выделенному серверу) выделяется приватная (т.е. индивидуальная) область памяти для хранения файлов, используемых данным виртуальным частным сервером. Однако если на физическом хост-компьютере реализовано множество идентичных друг другу виртуальных частных серверов, то в своей работе эти виртуальные частные серверы обладают и пользуются идентичными наборами файлов.Providing a separate physical device for storing the file system of each virtual private server is expensive and inefficient. Therefore, each virtual private server (dedicated server) is allocated a private (i.e., individual) memory area for storing files used by this virtual private server. However, if on a physical host computer there are many virtual private servers identical to each other, then in their work these virtual private servers possess and use identical sets of files.

Хотя организовать совместное использование файлов несколькими виртуальными частными серверами несложно, однако оснащение контейнеров эффективным методом совместного использования различных совпадающих файлов проблематично. Таким образом, требуется действенный и эффективный метод использования и обращения к общим файлам виртуальных частных серверов (контейнеров).Although sharing files with multiple virtual private servers is easy, equipping containers with an efficient method for sharing different matching files is problematic. Thus, an efficient and effective method of using and accessing shared files of virtual private servers (containers) is required.

Раскрытие полезной моделиUtility Model Disclosure

Настоящая полезная модель относится к кэшированию совместно используемых файлов виртуальных частных серверов (контейнеров), которое в значительной степени устраняет один или более недостатков существующего уровня техники.This utility model relates to caching of shared files of virtual private servers (containers), which largely eliminates one or more of the drawbacks of the prior art.

Согласно варианту осуществления, в составе системы имеется основной компьютер, обеспечивающий координированный доступ к ресурсам компьютера, на котором выполняется ядро операционной системы, содержащее в своем составе сервис файловой системы. Ядро операционной системы поддерживает множество виртуальных частных серверов. Пользователям сервиса виртуальных частных серверов доступно, по крайней мере, одно приложение. Каждый виртуальный частный сервер имеет свое собственное виртуальное пространство адресов (или собственный набор адресов), которое включает: адреса оперативного запоминающего устройства (ОЗУ); адреса IP (от английского Internet Protocol - протокол сети Интернет); адреса накопителя на жестких дисках; имена по протоколу SMB (от английского Server Message Block - совокупность серверных сообщений, сетевой протокол удаленного доступа к файлам, принтерам и другим сетевым ресурсам); имена по протоколу TCP (от английского Transmission Control Protocol - протокол управления передачей); имена каналов и т.д. Каждый виртуальный частный сервер имеет свои собственные объекты и файлы. С точки зрения ядра операционной системы каждый из упомянутых объектов и файлов каждого из виртуальных частных серверов имеет уникальный идентификатор.According to an embodiment, the system includes a main computer that provides coordinated access to the resources of the computer that runs the kernel of the operating system, which contains the file system service. The kernel of the operating system supports many virtual private servers. At least one application is available to users of the virtual private server service. Each virtual private server has its own virtual address space (or its own set of addresses), which includes: addresses of random access memory (RAM); IP addresses (from English Internet Protocol - Internet Protocol); hard drive addresses; names using the SMB protocol (from the English Server Message Block - a set of server messages, a network protocol for remote access to files, printers, and other network resources); names over TCP (from English Transmission Control Protocol - Transmission Control Protocol); channel names, etc. Each virtual private server has its own objects and files. From the point of view of the kernel of the operating system, each of the mentioned objects and files of each of the virtual private servers has a unique identifier.

Каждый из виртуальных частных серверов не может воздействовать на файлы или объекты другого виртуального частного сервера (контейнера), а также не может получить доступ к информации о процессах, выполняемых на другом виртуальном частном сервере. В состав ресурсов сервера входят: пространство виртуальной памяти, выделенное каждому пользователю; пространство памяти подкачки, выделенное в ядре операционной системы для поддержки виртуальных частных серверов; пространство памяти подкачки, используемое ядром операционной системы для поддержки процессов пользователя либо в форме совместного использования, либо в эксклюзивной форме (т.е. для поддержки процессов пользователя либо одного, либо множества виртуальных частных серверов); резидентная память, выделенная в ядре операционной системы; физическая память, используемая процессами пользователя; совместно используемые ресурсы центрального процессорного устройства (ЦПУ); секретные дескрипторы (или иные идентификаторы, относящиеся к разграничению прав доступа пользователей и виртуальных частных серверов); объекты и файлы, используемые ядром операционной системы; интерфейсы ввода-вывода и уровень их использования конкретными виртуальными частными серверами; файловое и (или) дисковое пространство памяти; ограничения, накладываемые на индивидуальные ресурсы пользователя.Each of the virtual private servers cannot affect the files or objects of another virtual private server (container), and also cannot access information about processes running on another virtual private server. The composition of server resources includes: virtual memory space allocated to each user; swap memory space allocated in the kernel of the operating system to support virtual private servers; swap memory space used by the kernel of the operating system to support user processes either in the form of sharing or in an exclusive form (i.e., to support user processes of either one or multiple virtual private servers); resident memory allocated in the kernel of the operating system; physical memory used by user processes; shared resources of the central processing unit (CPU); secret descriptors (or other identifiers related to the delimitation of access rights of users and virtual private servers); objects and files used by the kernel of the operating system; I / O interfaces and their level of use by specific virtual private servers; file and (or) disk space of memory; restrictions imposed on individual user resources.

Каждый виртуальный частный сервер содержит: совокупность процессов, причем каждый из них содержит, по крайней мере, один поток, обслуживающий соответствующих пользователей; совокупность объектов и файлов, ассоциированных с указанным множеством потоков. Согласно варианту осуществления, если виртуальный частный сервер использует файлы для операций чтения и записи, то для каждого из файлов основная управляющая операционная система с помощью хэш-функций вычисляет хэш-значения (контрольные суммы). Такие хэш-значения (контрольные суммы) используются как атрибуты (хэш-атрибуты) файла. Указанные значения хэш-атрибутов файлов (контрольные суммы) формируются при создании файлов (т.е. при выполнении операции закрытия файла). Хэш-атрибуты входят в состав расширенных атрибутов файлов, которые хранятся совместно с файлами.Each virtual private server contains: a set of processes, each of which contains at least one thread serving the corresponding users; a collection of objects and files associated with a specified set of threads. According to an embodiment, if the virtual private server uses files for read and write operations, then for each of the files, the main control operating system calculates hash values (checksums) using hash functions. Such hash values (checksums) are used as attributes (hash attributes) of the file. The specified values of the hash attributes of the files (checksums) are generated when the files are created (i.e., when the file close operation is performed). Hash attributes are part of the extended file attributes that are stored with the files.

Когда процесс виртуального частного сервера обращается к файлу, то выполняется проверка его хэш-атрибута (контрольной суммы) на соответствие записям базы данных. И если выявляется идентичный файл с совпадающими значениями контрольной суммы и длины файла в индексном дескрипторе (от английского inode, т.е. index node, - структура данных, хранящая служебную информацию о файлах файловой системы, в том числе, хранящая атрибуты файлов), то этот файл помещается в кэш-память дискового запоминающего устройства. Хэш-атрибут (контрольную сумму) проверяет специальная утилита ядра операционной системы. Если контрольные суммы файлов совпадают, то файл не копируется. Вместо этого для открытия файла, хранящегося в частной директории контейнера, используется ссылка-перенаправление. Файл в пространстве процесса виртуального частного сервера может быть переназначен (т.е. перенаправлен) на кэш-память дискового запоминающего устройства специальной утилитой ядра операционной системы. Затем вместо того, чтобы обращаться к приватному пространству виртуального частного сервера, процессы виртуального частного сервера обращаются к файлу в кэш-памяти дискового запоминающего устройства.When the virtual private server process accesses the file, it checks its hash attribute (checksum) against the database records. And if an identical file is detected with matching values of the checksum and file length in the index (from the English inode, i.e. index node, is a data structure that stores service information about files in the file system, including storing file attributes), this file is cached on the disk storage device. The hash attribute (checksum) is checked by a special utility of the operating system kernel. If the checksums of the files match, then the file is not copied. Instead, a redirect link is used to open the file stored in the container’s private directory. A file in the process space of a virtual private server can be reassigned (i.e. redirected) to the cache memory of a disk storage device using a special utility of the operating system kernel. Then, instead of accessing the private space of the virtual private server, the processes of the virtual private server access the file in the cache memory of the disk storage device.

Программное обеспечение сервера может представлять собой дополнение к любой из операционных систем: Microsoft Windows NT Server - Terminal Server Edition; Microsoft Windows 2000 Server - Terminal Server; Microsoft Windows Server 2003 - Terminal Services, или любому серверу, основанному на платформе Microsoft Windows. Операционная система содержит совокупность потоков, предназначенных для выполнения запросов пользователей. Виртуальные частные серверы представляются пользователю по существу как выделенные серверы и в общем случае предоставляют функциональность выделенного сервера или удаленного компьютера, включая все операции администрирования.Server software can be an addition to any of the operating systems: Microsoft Windows NT Server - Terminal Server Edition; Microsoft Windows 2000 Server - Terminal Server; Microsoft Windows Server 2003 - Terminal Services, or any server based on the Microsoft Windows platform. The operating system contains a set of threads designed to fulfill user requests. Virtual private servers are presented to the user essentially as dedicated servers and in general provide the functionality of a dedicated server or remote computer, including all administrative operations.

Дополнительные особенности и преимущества настоящей полезной модели будут разъяснены в следующем далее описании осуществления полезной модели. Частично они станут понятны из описания, либо они будут выявлены практикой использования полезной модели. Достоинства полезной модели будут реализованы и получены в структуре, подробно раскрытой в прилагаемом описании и формуле полезной модели, а также в прилагаемых чертежах.Additional features and advantages of the present utility model will be explained in the following description of the implementation of the utility model. Partially, they will become clear from the description, or they will be revealed by the practice of using the utility model. The advantages of the utility model will be realized and obtained in the structure disclosed in detail in the attached description and formula of the utility model, as well as in the accompanying drawings.

Следует учитывать, что и предшествующее общее описание, и последующее детальное описание приводятся в качестве примера и в целях разъяснения и предназначены для лучшего объяснения сущности заявленной полезной модели.It should be borne in mind that both the preceding general description and the following detailed description are given as an example and for purposes of explanation and are intended to better explain the essence of the claimed utility model.

Краткое описание чертежейBrief Description of the Drawings

На чертежах показано:The drawings show:

на фиг. 1 - схема кэш-памяти дискового запоминающего устройства согласно варианту осуществления;in FIG. 1 is a cache diagram of a disk storage device according to an embodiment;

на фиг. 2 - графическое представление процедуры формирования хэш-атрибута (контрольной суммы), являющегося атрибутом файла в контейнере, согласно варианту осуществления;in FIG. 2 is a graphical representation of a procedure for generating a hash attribute (checksum), which is an attribute of a file in a container, according to an embodiment;

на фиг. 3 - графическое представление процедуры формирования кэш-памяти файлов согласно варианту осуществления;in FIG. 3 is a graphical representation of a file cache generation procedure according to an embodiment;

на фиг. 4 - графическое представление способа кэширования компьютерных файлов согласно варианту осуществления;in FIG. 4 is a graphical representation of a method for caching computer files according to an embodiment;

на фиг. 5 - пример схемы хост-компьютерной системы, которая может использоваться в настоящей полезной модели.in FIG. 5 is an example of a host computer system diagram that can be used in the present utility model.

Осуществление полезной моделиUtility Model Implementation

Далее приводится подробное описание вариантов осуществления настоящей полезной модели, которые иллюстрируются прилагающимися чертежами.The following is a detailed description of embodiments of the present utility model, which are illustrated by the accompanying drawings.

Настоящая полезная модель направлена на систему, метод и компьютерный программный продукт для кэширования совместно используемых файлов виртуальных частных серверов (контейнеров). Виртуальный частный сервер (контейнер) представляет собой ограниченный набор (совокупность) процессов, системных ресурсов, пользователей, групп пользователей, объектов, структур данных. Каждый виртуальный частный сервер имеет уникальный идентификатор.This utility model is directed to a system, method and computer software product for caching shared files of virtual private servers (containers). A virtual private server (container) is a limited set (set) of processes, system resources, users, user groups, objects, data structures. Each virtual private server has a unique identifier.

Согласно варианту осуществления, виртуальный частный сервер предоставляет его пользователям услуги, которые по существу функционально эквивалентны предоставляемым выделенным сервером с удаленным доступом. По сути, с точки зрения администратора виртуальный частный сервер в настоящей полезной модели является тем же, что и выделенный компьютер, установленный в вычислительном центре.According to an embodiment, the virtual private server provides its users with services that are substantially functionally equivalent to those provided by the dedicated remote access server. In fact, from the point of view of the administrator, a virtual private server in this utility model is the same as a dedicated computer installed in a computer center.

По сути, с точки зрения пользователя виртуальный частный сервер функционирует так же, как и сервер с удаленным доступом, и предоставляет те же услуги, например, через выделенный IP-адрес. Следует учитывать, что некоторые процессы, выполняемые в составе ядра операционной системы, могут предоставлять услуги множеству виртуальных частных серверов.In fact, from the user's point of view, a virtual private server functions in the same way as a server with remote access, and provides the same services, for example, through a dedicated IP address. Keep in mind that some processes running as part of the kernel of the operating system can provide services to many virtual private servers.

В вычислительной системе с одной операционной системой каждый виртуальный частный сервер виртуализирует указанную операционную систему и использует службы операционной системы. Каждый виртуальный частный сервер содержит множество процессов, каждый из которых содержит, по крайней мере, один поток, обслуживающий соответствующих пользователей, а также множество объектов и файлов, ассоциированных с указанным потоком (множеством потоков). Процессы виртуального частного сервера используют некоторое число одних и тех же файлов. В заявке 11/972,556 на патент США, поданной одновременно с данной заявкой и включенной в данную заявку в виде ссылки, предлагается система для использования ссылок на совместно используемые файлы виртуальных частных серверов, расположенных в физическом запоминающем устройстве хост-компьютера.In a computer system with one operating system, each virtual private server virtualizes the specified operating system and uses the services of the operating system. Each virtual private server contains many processes, each of which contains at least one thread serving the corresponding users, as well as many objects and files associated with the specified stream (multiple threads). Virtual private server processes use a number of the same files. U.S. Patent Application 11 / 972,556, filed simultaneously with this application and incorporated by reference into this application, proposes a system for using links to shared files of virtual private servers located in the physical storage device of the host computer.

Когда процессу виртуального частного сервера требуется обратиться к файлу, то процесс находит ссылку на файл в приватной зоне виртуального частного сервера и обращается к файлу в физическом запоминающем устройстве. Однако такая процедура не всегда работоспособна после восстановления виртуального частного сервера из резервной копии. В таких случаях обычно некоторое число ссылок на файлы виртуального частного сервера не работают или указывают на неверное положение, в связи с чем запуск виртуального частного сервера оказывается невозможным.When the process of the virtual private server needs to access the file, the process finds a link to the file in the private zone of the virtual private server and accesses the file in the physical storage device. However, this procedure is not always operational after restoring a virtual private server from a backup. In such cases, usually a certain number of links to virtual private server files do not work or indicate an incorrect position, and therefore it is impossible to start the virtual private server.

Согласно варианту осуществления, когда процессы виртуального частного сервера выполняют операции чтения и записи в файлы, основная управляющая операционная система вычисляет хэш-значения (контрольные суммы) для каждого из файлов. Утилита ядра операционной системы перехватывает операции чтения и записи файлов и, при выявлении нерасшаренного файла (т.е. файла без общего доступа) выполняет требуемые действия. Следует учитывать, что при создании файлов может быть сформирована кэш-память файлов. Хэш-значения (контрольные суммы) используются в качестве атрибутов файлов. Значение хэш-атрибута (контрольной суммы) фала контейнера формируется при создании файла (т.е. при выполнении операции закрытия файла). Хэш-атрибуты хранятся в базе данных и упорядочены в соответствии со значениями атрибутов размера файла. Следует учитывать, что в базе данных могут также храниться неупорядоченные записи. Например, хэш-атрибуты могут быть объединены в группы.According to an embodiment, when the virtual private server processes read and write files, the main control operating system calculates hash values (checksums) for each of the files. The operating system kernel utility intercepts file read and write operations and, when an unshared file (that is, a file without shared access) is detected, performs the required actions. Keep in mind that when creating files, a file cache may be generated. Hash values (checksums) are used as file attributes. The value of the hash attribute (checksum) of the container file is generated when the file is created (i.e., when the file close operation is performed). Hash attributes are stored in the database and arranged according to file size attribute values. Please note that disordered records may also be stored in the database. For example, hash attributes can be grouped.

Первая группа битов хэш-атрибутов используется в качестве имени папки (группы) и соответствует упорядоченным или неупорядоченным хэш-атрибутам, хранящимся в этой папке. При поступлении нового хэш-значения оно направляется в соответствующую папку, это является разновидностью алгоритма упорядочивания. Например, файл с хэш-значением ″ABCD″ может храниться как файл ″ABCD″, или же как файл ″D″ в папке ″С″, входящей в папку ″В″, которая расположена в корневой папке ″А″ (которая, тем не менее, может являться папкой более низкого уровня для некоторой другой папки). Буквы ″A-D″ могут быть числами в шестнадцатеричном коде. Хэш-значение может также использоваться в качестве адреса запоминающего устройства, в котором хранятся соответствующие данные, например, в качестве пути к расшаренному файлу (т.е. файлу с общим доступом). Предложенный способ не обязательно требует дополнительного хранения какого-либо рода.The first group of hash attribute bits is used as the name of the folder (group) and corresponds to the ordered or unordered hash attributes stored in this folder. When a new hash value arrives, it is sent to the appropriate folder, this is a kind of ordering algorithm. For example, a file with a hash value of ″ ABCD ″ can be stored as a ″ ABCD ″ file, or as a ″ D ″ file in the ″ C ″ folder in the ″ B ″ folder located in the ″ A ″ root folder (which however, it may be a lower level folder for some other folder). The letters ″ A-D ″ can be numbers in hexadecimal code. The hash value can also be used as the address of the storage device in which the corresponding data is stored, for example, as the path to the shared file (i.e., a shared file). The proposed method does not necessarily require additional storage of any kind.

Когда процесс виртуального частного сервера (контейнера) обращается к файлу, то выполняется сопоставление хэш-атрибута (контрольной суммы) с содержимым базы данных. И если выявляется идентичный файл с совпадающими значениями в индексном дескрипторе (контрольная сумма и длина файла), то файл помещается в кэш-память дискового запоминающего устройства в ОЗУ, которая может располагаться на локальном сервере или на любом сервере кластера или в кластере сервиса облачных вычислений. Следует учитывать, что для виртуальных частных серверов предпочтительно не использовать запросы клиент-сервер. Предпочтительно использовать одиночный локальный вычислительный узел и (или) кластер вычислительных узлов. Указанные операции могут выполняться с применением блока управления и поддержки пользователя, например, выполненным в виде части компьютерной памяти, содержащей инструкции блока управления и поддержки пользователя, управляющие работой процессора. Блока управления и поддержки пользователя может выполняться в пространстве пользователя. Файлу в приватной или частной директории контейнера назначается ссылка переадресации на его копию в кэш-памяти дискового запоминающего устройства. Виртуальный частный сервер может обращаться к файлу из кэш-памяти дискового запоминающего устройства вместо файла из приватной зоны виртуального частного сервера.When the process of the virtual private server (container) accesses the file, the hash attribute (checksum) is compared with the contents of the database. And if an identical file is detected with matching values in the inode (checksum and file length), then the file is placed in the cache memory of the disk storage device in RAM, which can be located on the local server or on any server in the cluster or in the cloud computing service cluster. Note that for virtual private servers, it is preferable not to use client-server requests. It is preferable to use a single local computing node and / or a cluster of computing nodes. These operations can be performed using the control unit and user support, for example, made as part of a computer memory containing instructions of the control unit and user support that control the operation of the processor. The control and user support unit may be executed in user space. A file in the container’s private or private directory is assigned a redirect link to a copy of it in the cache memory of the disk storage device. The virtual private server can access the file from the cache of the disk storage device instead of the file from the private zone of the virtual private server.

Иными словами, ядро или отдельный сервис ядра операционной системы определяет доступ к диску, на котором хранится индексный дескриптор файлов. Если выявляются идентичные индексные дескрипторы, то значение индексного дескриптора (контрольная сумма и длина файла) передаются блоку управления и поддержки пользователя. Блок управления и поддержки пользователя представляет собой приложение пространства пользователя, которое проверяет все файлы в контейнере и собирает статистику обращений к файлам. Блок управления и поддержки пользователя может применяться на локальном сервере или на любом сервере кластера или на кластере сервиса облачных вычислений. Например, если блок управления и поддержки пользователя обнаруживает некоторое число файлов в приватной директории контейнера, к которым регулярно обращаются процессы контейнера, то блок управления и поддержки пользователя обрабатывает эти сведения и выполняет соответствующие действия.In other words, the kernel or a separate kernel service of the operating system determines access to the disk on which the file inode is stored. If identical inodes are detected, then the inode value (checksum and file length) are transferred to the control and user support unit. The control and user support unit is a user-space application that checks all files in the container and collects statistics of file accesses. The control and user support unit can be used on the local server or on any server in the cluster or on the cloud computing service cluster. For example, if the control and user support unit detects a certain number of files in the private directory of the container that the container processes access regularly, then the user control and support unit processes this information and performs the corresponding actions.

Ядро операционной системы проверяет, имеют ли файлы идентичные индексные дескрипторы в базе данных и, если таковые найдены, назначает ссылки-перенаправления на местоположение тех же самых файлов в кэш-памяти дискового запоминающего устройства. Блок управления и поддержки пользователя также освобождает кэш-память дискового запоминающего устройства от устаревших файлов, к которым в течение длительного времени не было обращений.The kernel of the operating system checks whether the files have identical inodes in the database and, if found, assigns redirect links to the location of the same files in the cache memory of the disk storage device. The control and user support unit also frees the cache memory of the disk storage device from obsolete files that have not been accessed for a long time.

Если файл открыт для записи, то хэш-атрибут (контрольная сумма) файла отбрасывается, и по завершении операции записи в файл формируется новое значение атрибута. Эти действия выполняются обновленной подсистемой ввода-вывода ядра операционной системы. Согласно варианту осуществления, хэш-атрибут (контрольная сумма) формируется при выполнении операции закрытия файла только для файлов, расположенных в директории с атрибутом ″checksum=auto″ (от английского - ″контрольная сумма=автоматически″). Например, директория ″/bin″ имеет атрибут ″checksum=auto″.If the file is open for writing, then the hash attribute (checksum) of the file is discarded, and when the write operation to the file is completed, a new attribute value is generated. These actions are performed by the updated I / O subsystem of the kernel of the operating system. According to an embodiment, a hash attribute (checksum) is generated when a file close operation is performed only for files located in a directory with the attribute ″ checksum = auto ″ (from English, ″ checksum = automatically ″). For example, the ″ / bin ″ directory has the ″ checksum = auto ″ attribute.

Если в указанной директории записан файл ″/bin/xxx″, то для этого файла вычисляется хэш-атрибут (контрольная сумма) ″XXX″ и записывается в атрибут файла ″checksum=XXX″. Следует учитывать, что, например, директория ″/home″ не имеет атрибута контрольной суммы, и файлы пользователя в этой директории не подвергаются хэшированию (хэш-атрибуты не вычисляются), поскольку вероятность совпадения файлов пользователя крайне мала по сравнению с вероятностью совпадения файлов контейнера.If the file ″ / bin / xxx ″ is written in the specified directory, then the hash attribute (checksum) ″ XXX ″ is calculated for this file and written to the file attribute ″ checksum = XXX ″. It should be noted that, for example, the ″ / home ″ directory does not have a checksum attribute, and the user files in this directory are not hashed (hash attributes are not calculated), since the probability of matching user files is extremely small compared to the probability of matching container files.

Согласно варианту осуществления, могут применяться известные алгоритмы хэширования, например, SHA20, Gold Fish, EСВ, SHA1, SHA2, SHA256, SHA512 и т.д. Если файл хранится на уровне блоков данных (кластеров), то значение хэш-атрибута может изменяться при изменении блоков данных, образующих файл. В таком случае значение хэш-атрибута пересчитывается с учетом соответствующего блока данных. Эти операции должны выполняться быстро, в связи с чем рекомендуется использовать простую (короткую) хэш-функцию. Альтернативный вариант заключается в расчете и хранении значений хэш-атрибутов для каждого блока данных.According to an embodiment, well-known hashing algorithms can be used, for example, SHA20, Gold Fish, ECB, SHA1, SHA2, SHA256, SHA512, etc. If the file is stored at the level of data blocks (clusters), then the value of the hash attribute may change when changing the blocks of data that make up the file. In this case, the value of the hash attribute is recalculated taking into account the corresponding data block. These operations should be performed quickly, and therefore it is recommended to use a simple (short) hash function. An alternative is to calculate and store hash attribute values for each data block.

Согласно варианту осуществления, число файлов (индексных дескрипторов) не ограничено, однако объем доступной для файлов памяти дискового запоминающего устройства заблаговременно ограничен. Файлы, к которым не обращались в течение продолжительного времени, удаляются из кэш-памяти и отбрасываются. Проверка обращений к файлам и их удаление могут выполняться другим блоком управления и поддержки пользователя, который сканирует виртуальное запоминающее устройство независимо от пользователей и удаляет файлы. Интервал времени, по истечении которого файл считается устаревшим, устанавливается системным администратором. Альтернативный вариант заключатся в архивации файлов в сжатой форме.According to an embodiment, the number of files (inodes) is not limited, however, the amount of disk memory available for files is limited in advance. Files that have not been accessed for a long time are deleted from the cache and discarded. Checking file accesses and deleting them can be performed by another user control and support unit, which scans the virtual storage device independently of users and deletes files. The time interval after which the file is considered obsolete is set by the system administrator. An alternative is to archive files in a compressed form.

Следует учитывать, что основное преимущество варианта осуществления полезной модели состоит не столько в экономии объема доступной памяти дискового запоминающего устройства, сколько в снижении числа обращений к устройствам данного типа. То есть, достоинствами являются большая производительность и быстродействие системы. Например, в случае, если 100 идентичных виртуальных серверов (контейнеров) случайным образом обращаются к 10 страницам, то общее число обращений по сравнению с обычной системой сокращается на (100-1)×10. Следует учитывать, что 990 случайных обращений к обычному традиционному накопителю на жестких дисках занимает приблизительно 10 с.It should be noted that the main advantage of the embodiment of the utility model is not so much in saving the amount of available memory of the disk storage device as in reducing the number of calls to devices of this type. That is, the advantages are the great performance and speed of the system. For example, if 100 identical virtual servers (containers) randomly access 10 pages, then the total number of hits is reduced by (100-1) × 10 compared to a conventional system. Keep in mind that 990 random accesses to a conventional traditional hard drive takes about 10 seconds.

Иными словами, вместо того, чтобы считывать один и тот же файл пять раз из пяти различных областей дисковой памяти, файл считывается один раз из кэш-памяти дискового запоминающего устройства. Ядро операционной системы обнаруживает наличие общего файла для заданных индексных дескрипторов (т.е. наборов метаданных файла, таких, как расширение файла, контрольная сумма, длина файла) и быстро находит файл. Блок управления и поддержки пользователя пространства пользователя находит общие для контейнеров файлы на основе статистики обращений к файлам. Блок управления и поддержки пользователя работает в пространстве пользователя, однако он не неподконтрольна пользователям виртуального частного сервера. Предлагаемые блоки управления и поддержки пользователя могут управляться вычислительным узлом администратора (виртуальным частным сервером с индексом ″0″), контролируемым системным администратором. В случае, если файл всего лишь переименовывается внутри контейнера без изменения хэш-атрибут а, то в работе системы принципиально ничего не меняется, и файл может быть прочитан с использованием прежнего значения хэш-атрибута. Если изменения в содержимом файла и метаданных затрагивают значение хэш-атрибута, то в пространстве памяти контейнера может быть создан новый экземпляр файла, после чего к файлу может быть открыт общий доступ в соответствии с изложенной выше процедурой.In other words, instead of reading the same file five times from five different areas of disk memory, the file is read once from the cache memory of the disk storage device. The kernel of the operating system detects the presence of a common file for given inodes (i.e. sets of file metadata, such as file extension, checksum, file length) and quickly finds the file. The control unit and user space user support finds files common to containers based on file access statistics. The control and user support unit operates in the user space, however, it is not under the control of the users of the virtual private server. The proposed control and user support units can be controlled by the administrator's computing node (virtual private server with the ″ 0 ″ index), controlled by the system administrator. If the file is only renamed inside the container without changing the hash attribute a, then nothing changes fundamentally in the system, and the file can be read using the old value of the hash attribute. If changes in the contents of the file and metadata affect the value of the hash attribute, a new instance of the file can be created in the container’s memory space, after which the file can be shared in accordance with the above procedure.

Согласно варианту осуществления, система периодически в автоматическом режиме сканирует контейнеры в поисках идентичных файлов, используя другой блок управления и поддержки пользователя. Файлы копируются в кэш-память и хранятся там в течение установленного времени, по истечении которого файлы удаляются из кэшпамяти или перемещаются на хранение в архив. Это повышает общую производительность системы и эффективность использования ОЗУ при условии, что система оперирует с большим объемом избыточных данных (т.е. с языковыми настройками, специфическими для географического местоположения данными, графическими примитивами и т.д.).According to an embodiment, the system periodically automatically scans containers in search of identical files using another control and user support unit. Files are copied to the cache memory and stored there for a set time, after which the files are deleted from the cache or transferred to the archive. This increases the overall system performance and RAM utilization, provided that the system operates with a large amount of redundant data (i.e., with language settings, geographic location-specific data, graphic primitives, etc.).

Следует учитывать что если файл изменяется, то измененный экземпляр файла остается в приватной директории контейнера. При размещении файлов в быстродействующей кэш-памяти дискового запоминающего устройства используется список процессов виртуального частного сервера (контейнера). Файл всегда хранится в приватной директории контейнера. Однако для быстрых операций открытия файлов может использоваться версия файла, предоставляемая механизмом ″PFcache″. Согласно варианту осуществления, файл виртуального частного сервера (контейнера) остается в приватной директории контейнера и после того, как он копируется в кэш-память дискового запоминающего устройства. В случае миграции контейнера или в случае, если требуется восстановление контейнера из резервной копии, когда указанный файл из кэшпамяти дискового запоминающего устройства недоступен, используется файл, хранящийся в приватной директории.Keep in mind that if the file changes, then the changed file instance remains in the container’s private directory. When placing files in the high-speed cache of a disk storage device, a list of processes of a virtual private server (container) is used. The file is always stored in the container’s private directory. However, for quick file open operations, the file version provided by the ″ PFcache ″ mechanism can be used. According to an embodiment, the virtual private server (container) file remains in the container’s private directory even after it is copied to the cache memory of the disk storage device. If the container is migrated, or if it is necessary to restore the container from the backup copy, when the specified file from the cache memory of the disk storage device is unavailable, the file stored in the private directory is used.

Когда процесс контейнера пытается обратиться к файлу из приватной директории контейнера, он получает перенаправление на файл, расположенный в кэш-памяти дискового запоминающего устройства. Однако если перенаправление не действует (например, в случае миграции контейнера на другой хост-сервер), то процесс обращается к файлу в приватной директории по пути, хранящемуся в дереве файловой системы (дереве индексных дескрипторов). Если доступ к файлу, указанному в перенаправлении, после нескольких попыток не предоставляется, то альтернативный вариант заключается в отбрасывании значения атрибута контрольной суммы. Затем по завершении внесения изменений в файл формируется новое значение атрибута контрольной суммы.When the container process tries to access the file from the container’s private directory, it receives a redirect to the file located in the cache memory of the disk storage device. However, if the redirection does not work (for example, if the container is migrated to another host server), then the process accesses the file in the private directory along the path stored in the file system tree (index tree). If access to the file specified in the redirection is not provided after several attempts, then an alternative is to discard the value of the checksum attribute. Then, upon completion of the changes to the file, a new value of the checksum attribute is generated.

Согласно варианту осуществления, всегда применяются файлы-шаблоны, если таковые имеются в распоряжении. Контрольные суммы кэш-памяти шаблонов рассчитываются заранее. Контрольная сумма рассчитывается каждый раз при модификации или создании нового файла. Каждый файл обладает индексным дескриптором, в состав которого входит атрибут, показывающий, была ли рассчитана контрольная сумма и хранится ли она вместе с файлом. Если контрольная сумма имеется, то процесс контейнера перенаправляется на файл с тем же индексным дескриптором в расшаренную кэш-память дискового запоминающего устройства. Согласно варианту осуществления, контрольные суммы запоминаются автоматически.According to an embodiment, template files, if any, are always used. Pattern cache checksums are calculated in advance. The checksum is calculated every time you modify or create a new file. Each file has an index, which includes an attribute indicating whether the checksum was calculated and whether it is stored with the file. If there is a checksum, then the container process is redirected to the file with the same index in the shared cache of the disk storage device. According to an embodiment, the checksums are stored automatically.

На фиг. 1 показана схема кэш-памяти дискового запоминающего устройства согласно варианту осуществления полезной модели. Создается файл, вычисляется значение хэш-атрибута (контрольной суммы), это значение помешается в один из вариантов кэш-памяти ПО "centos-6.tgz" шаблона файла (цифра 6 может обозначать номер версии файла, "tgz" - расширение файла, означающее, что это контейнер сжатых данных, а не виртуальный контейнер). Назначается атрибут контрольной суммы файла ("x-attr:csum=HEX16"). При создании контейнера указанный файл копируется вместе с предварительно рассчитанным значением "x-attr" (значением контрольной суммы) из кэш-памяти шаблонов в файл (виртуальное запоминающее устройство, образ диска) "ploop" (от английского "p"+"loop", в технологии виртуализации OpenVZ - файл, содержащий файловую систему контейнера) 120. Файл "ploop" 120 представляет собой совокупность виртуального блочного устройства и соответствующего драйвера, который получает данные из файла, а не от физического запоминающего устройства. Файл "ploop" 120 является результатом переноса технологии кольцевого запоминающего устройства (от английского - loop device, виртуальное запоминающее устройство, содержащее файловую систему) из операционной системы Linux, которое поддерживает: модульную архитектуру; различные форматы файлов (″плоский″, QCOW2 и др.); сетевое хранение и соответствующий протокол сетевой файловой системы NFS; создание моментальных копий содержимого запоминающего устройства и быструю инициализацию через стековые образы и трекер совмещенной записи для ускоренной миграции на лету (живой миграции). Файл ″ploop″ 120 является виртуальным блочным кольцевым дисковым устройством, которое в дополнение к возможностям устройства типа ″ploop″ обладает расширенным набором возможностей, в частности обеспечивает динамическое изменение объема, моментальное создание копий содержимого, резервное копирование и т.д. Основная идея состоит в размещении файловой системы контейнера в файле. При создании контейнера файл копируется в директорию 130 ″/bin/bash/″. Виртуальное запоминающее устройство ″ploop″ 120 проверяет файлы в приватной директории контейнера ″/vz/private/100/fs″. Затем, если файл имеет хэш-атрибут (контрольную сумму) ″x-attr: csum=HEX16″, то файл помещается в кэш-память локального шаблона 140 ″/opt/vzcached-file″ совместно с атрибутом контрольной суммы файла ″х-attr: csum=HEX16″. Затем файл сохраняется (150) локально по адресу ″/opt/cached-file″ со своим атрибутом ″x-attr: csum=НЕХ16″ для использования контейнером в случаях, когда сохраненный в кэш-памяти файл недоступен (т.е. утерян или усечен).In FIG. 1 shows a cache diagram of a disk storage device according to an embodiment of the utility model. A file is created, the value of the hash attribute (checksum) is calculated, this value will be placed in one of the options for the software cache "centos-6.tgz" file template (the number 6 can indicate the version number of the file, "tgz" is the file extension meaning that it is a container of compressed data, not a virtual container). The file checksum attribute is assigned ("x-attr: csum = HEX16"). When creating the container, the specified file is copied along with the pre-calculated value "x-attr" (checksum value) from the template cache to the file (virtual memory, disk image) "ploop" (from English "p" + "loop", in OpenVZ virtualization technology - a file containing the container file system) 120. The “ploop” file 120 is a combination of a virtual block device and a corresponding driver that receives data from a file, and not from a physical storage device. File "ploop" 120 is the result of the transfer of ring storage technology (from English - loop device, a virtual storage device containing a file system) from the Linux operating system, which supports: modular architecture; various file formats (″ flat ″, QCOW2, etc.); network storage and the corresponding NFS network file system protocol; creating snapshots of the contents of the storage device and quick initialization through stack images and a tracker for combined recording for accelerated migration on the fly (live migration). The ″ ploop ″ 120 file is a virtual block ring disk device that, in addition to the capabilities of a ″ ploop ″ device, has an expanded set of capabilities, in particular, it provides dynamic volume change, instant creation of content copies, backup, etc. The basic idea is to place the container file system in a file. When creating the container, the file is copied to the 130 ″ / bin / bash / ″ directory. The ″ ploop ″ 120 virtual storage device checks files in the private directory of the ″ / vz / private / 100 / fs ″ container. Then, if the file has the hash attribute (checksum) ″ x-attr: csum = HEX16 ″, then the file is cached in the local template 140 ″ / opt / vzcached-file ″ together with the file checksum attribute ″ x-attr : csum = HEX16 ″. Then the file is saved (150) locally at the address ″ / opt / cached-file ″ with its own attribute ″ x-attr: csum = HEX16 ″ for use by the container in cases when the file stored in the cache is inaccessible (i.e. lost or truncated).

Файл из кэш-памяти 140 шаблонов ″/opt/vzcached-file″ перемещается в кэш-память 160 дискового запоминающего устройства ″/vz/pfcache/HEX1-2/HEX3-16″. Альтернативный вариант заключается в том, что файл из локального запоминающего устройства 130 контейнера ″/bin/bash/″ не помещается в кэш-память 140, однако помещается к кэш-память 160 дискового запоминающего устройства при необходимости (по запросу) или отложено. Отложенное кэширование означает, что блок управления и поддержки пользователя собирает статистику обращений к файлам контейнеров, а ядро операционной системы по прошествии некоторого времени помещает файлы в кэш-память на основе статистических данных, обработанных блоком управления и поддержки пользователя.The file from the cache of 140 templates ″ / opt / vzcached-file ″ is moved to the cache 160 of the disk storage ″ / vz / pfcache / HEX1-2 / HEX3-16 ″. An alternative is that the file from the local storage device 130 of the ″ / bin / bash / ″ container does not fit into the cache 140, but is put into the cache storage 160 of the disk storage device if necessary (on request) or delayed. Delayed caching means that the control unit and user support collects statistics of accesses to container files, and the kernel of the operating system after some time places the files in the cache memory based on statistics processed by the control and user support unit.

Следует учитывать, что при инсталляции шаблона приложения исходный менеджер пакетов компании Red Hat ″RPM″ (менеджер пакетов или система управления пакетами) инсталлирует файлы и помощники ядра и вычисляет их контрольные суммы в отложенном режиме. Затем кэш-память 160 обрабатывает контрольные суммы файлов, модифицирует файлы и устанавливает атрибуты "xattrs" файлов. Кроме того, кэш-память 160 обнаруживает копии (клоны) файлов, имеющие то же самое значение индексного дескриптора. Клоны могут выявляться путем выполнения процедуры хэширования над файлом и последующего сравнения собственно содержимого файла. Поскольку вероятность совпадения начальных битов различных файлов с одинаковыми значениями хэш-атрибутов очень мала, то для вынесения решения об идентичности файлов могут сравниваться только предопределенные части файлов - размеры файлов. Следует учитывать, что значения хэш-атрибутов в данном случае будут идентичны.Keep in mind that when you install the application template, the original Red Hat ″ RPM ″ package manager (package manager or package management system) installs the kernel files and assistants and calculates their checksums in deferred mode. The cache 160 then processes the file checksums, modifies the files, and sets the xattrs attributes of the files. In addition, the cache 160 detects copies (clones) of files having the same index value. Clones can be detected by hashing the file and then comparing the actual contents of the file. Since the probability of the initial bits of different files coinciding with the same values of the hash attributes is very small, only the predetermined parts of the files — file sizes — can be compared to decide on the identity of the files. Please note that the hash attribute values in this case will be identical.

Фиг.2 поясняет процедуру формирования хэш-атрибута (контрольной суммы) файла контейнера согласно варианту осуществления полезной модели. Согласно варианту осуществления, при создании контейнера файл вместе с ранее рассчитанным значением атрибута контрольной суммы "xattr" извлекается из кэш-памяти шаблонов и копируется в локальное запоминающее устройство 130 "/bin/bash/" контейнера.2 illustrates a procedure for generating a hash attribute (checksum) of a container file according to an embodiment of the utility model. According to an embodiment, when creating the container, the file, along with the previously calculated value of the xattr checksum attribute, is extracted from the template cache and copied to the local storage 130 "/ bin / bash /" of the container.

При инсталляции соответствующего шаблона приложения исходный менеджер пакетов компании Red Hat или иной менеджер пакетов или инсталлятор устанавливает файлы и, опционально, шаблоны. Ядро принимает участие в этой процедуре и рассчитывает контрольные суммы "x-attr:csum=HEX16" файлов в кэш-памяти 210 "/opt/plesk" в отложенном режиме. Кэш-память 160 (см. фиг.1) формирует контрольные суммы для измененных файлов и устанавливает значения их атрибутов "x-attr". Затем обновляются значения атрибутов "x-attr:csum=HEX16" файлов в приватной директории "/bin/Is" контейнера.When you install the appropriate application template, the original Red Hat package manager or another package manager or installer installs the files and, optionally, the templates. The kernel takes part in this procedure and calculates checksums of "x-attr: csum = HEX16" files in cache 210 "/ opt / plesk" in deferred mode. Cache 160 (see figure 1) generates checksums for the modified files and sets the values of their attributes "x-attr". Then, the attribute values "x-attr: csum = HEX16" of the files in the private directory "/ bin / Is" of the container are updated.

Фиг.3 поясняет процедуру заполнения кэш-памяти согласно варианту осуществления полезной модели. Шаблоны приложений устанавливаются менеджером пакетов компании Red Hat (этой процедуре способствует ядро операционной системы), вычисляются "на лету" значения атрибутов "x-attr". Кроме того, кэш-память 160 пересчитывает значения контрольных сумм тех файлов, которые были изменены по сравнению с состоянием на момент предыдущего вычисления значений контрольных сумм.3 illustrates a cache filling procedure according to an embodiment of the utility model. Application templates are set by the Red Hat package manager (the kernel of the operating system contributes to this procedure), the values of the "x-attr" attributes are calculated on the fly. In addition, the cache 160 recounts the checksum values of those files that were changed from the state at the time of the previous calculation of the checksum values.

Если значение индексного дескриптора некоторого файла (контрольная сумма и длина файла) совпадает со значением индексного дескриптора другого файла, к которому осуществляется обращение, то ядро операционной системы может запросить кэширование файла. Например, значения атрибутов файлов, расположенных в приватных директориях контейнеров 310 и 320, одинаковы (совпадают контрольные суммы и длины файлов). Ядро 330 операционной системы обнаруживает факт использования одного и того же файла (контрольная сумма и длина одинаковы) и уведомляет об этом блок управления и поддержки пользователя кэш-памяти. Блок управления и поддержки пользователя 340 в отложенном режиме принимает решение, следует ли и когда именно выполнить кэширование общего для контейнеров файла. Для ограничения размера кэш-памяти путем использования образа файла применяется виртуальное запоминающее устройство ″ploop″ 350. Виртуальное запоминающее устройство ″ploop″ является разновидностью виртуального дискового запоминающего устройства или образа диска с определенными характеристиками и свойствами, описанными выше, снабженного соответствующими программами-драйверами. Следует учитывать, что виртуальное запоминающее устройство ″ploop″ 350 может применяться как отдельный раздел дискового запоминающего устройства.If the index value of a file (checksum and file length) matches the index value of another file being accessed, the kernel of the operating system may request file caching. For example, the attribute values of files located in the private directories of containers 310 and 320 are the same (checksums and file lengths coincide). The kernel 330 of the operating system detects the fact of using the same file (the checksum and length are the same) and notifies the control unit and the user support cache. The control and user support unit 340 in deferred mode decides whether and when to cache the file common to containers. ″ Ploop ″ 350 virtual storage device is used to limit the cache size by using a file image. ″ Ploop ″ virtual storage device is a type of virtual disk storage device or disk image with certain characteristics and properties described above, provided with appropriate driver programs. Please note that the ″ ploop ″ 350 virtual storage device can be used as a separate section of a disk storage device.

Согласно варианту осуществления, для хранения ссылок-перенаправлений как для шаблонов, так и для размещенных в кэш-памяти файлов применяется глобальная кэш-память ″/vz/pfcache″. Файлы кэшируются в отложенном режиме: изначально кэш-память ″pfcache″ дискового запоминающего устройства пуста, она заполняется на основе статистики доступа к файлам контейнера, собираемой блоком управления и поддержки пользователя 340 кэш-памяти. Кэш-память дискового запоминающего устройства заполняется динамически, в нее помещаются только общие для контейнеров файлы, к которым происходит обращение. Неиспользуемые файлы удаляются из кэш-памяти по прошествии установленного времени.According to an embodiment, the global cache ″ / vz / pfcache ″ is used to store redirect links for both templates and cache-located files. Files are cached in deferred mode: initially, the ″ pfcache ″ cache of the disk storage device is empty, it is filled based on statistics on access to the container files collected by the control unit and user support 340 cache. The cache memory of the disk storage device is filled dynamically, it contains only the files common to the containers that are being accessed. Unused files are deleted from the cache after a specified time.

Согласно варианту осуществления, в случае модификации файла атрибут контрольной суммы файла очищается ядром операционной системы. Файлы, хранящиеся в кэш-памяти, к которым в течение длительного времени не обращаются процессы контейнеров, ″отсекаются″ блоком управления и поддержки пользователя. Это может выполняться по достижении объема кэш-памяти установленного ограничения.According to an embodiment, if the file is modified, the file checksum attribute is cleared by the kernel of the operating system. Files stored in the cache, which container processes have not accessed for a long time, are ″ cut off ″ by the control and user support unit. This can be done when the cache reaches the set limit.

Когда объем кэш-памяти достигает предельного значения, ″старые″ файлы перемещаются в поддиректорию (директорию, имеющую более низкий уровень иерархии) ″to-be-removed″ (от английского - ″для удаления″). В свою очередь, все хранящиеся в этой поддиректории файлы должны быть удалены к началу этой операции. Если ядро операционной системы сообщает, что некоторые из перемещенных файлов все еще используются, то эти файлы блоком управления и поддержки пользователя перемещаются обратно. Превентивную операцию удаления в фоновом режиме выполняет специальный вычислительный поток.When the cache reaches its limit value, ″ old ″ files are moved to a subdirectory (a directory with a lower hierarchy) ″ to-be-removed ″ (from English - ″ to remove ″). In turn, all files stored in this subdirectory should be deleted by the beginning of this operation. If the kernel of the operating system reports that some of the moved files are still in use, then these files are moved back by the user control and support unit. A preventive delete operation in the background is performed by a special computing thread.

Устаревшие файлы выявляются на основе отметок о времени доступа к файлам. Если происходит обращение к файлу из кэш-памяти с использованием ссылки-перенаправления, основанной на атрибуте контрольной суммы, то ядро операционной системы обновляет отметку времени доступа к файлу (например, если текущее время отличается на 12 часов от значения отметки времени доступа к файлу).Outdated files are identified based on file access time stamps. If a file is accessed from the cache using a redirect link based on a checksum attribute, the kernel of the operating system updates the timestamp for accessing the file (for example, if the current time differs by 12 hours from the value of the timestamp for accessing the file).

Следует учитывать, что шаблоны могут помещаться в кэш-память в форме "simfs" (представление в виде памяти дискового запоминающего устройства или виртуальной памяти, используемое в проекте по технологии виртуализации OpenVZ), но с атрибутами, содержащими контрольные суммы файлов. Шаблоны могут быть удалены просто путем удаления помещенного в кэш-память файла "template.tgz" (например, при обновлении).Keep in mind that templates can be placed in the cache in the form of "simfs" (a representation in the form of memory of a disk storage device or virtual memory used in the OpenVZ virtualization technology project), but with attributes containing file checksums. Templates can be deleted simply by deleting the "template.tgz" file placed in the cache (for example, when updating).

Виртуальный частный сервер (контейнер) создается путем распаковки кэщированного шаблона контейнера, содержащего файлы и атрибуты. Контейнер может быть удален путем удаления его приватной директории. Следует учитывать, что помещенные в кэш-память файлы удаляются позднее, в зависимости от времени последнего доступа к файлу.A virtual private server (container) is created by unpacking a cached container template containing files and attributes. A container can be deleted by deleting its private directory. Keep in mind that files stored in the cache are deleted later, depending on the time of the last access to the file.

Согласно варианту осуществления, виртуальные частные серверы (контейнеры) могут быть восстановлены, а также могут мигрировать. Легко может создаваться копия контейнера. Преимуществом является то, что не требуются дополнительные действия, поскольку автоматически используются те же самые файлы, расположенные в кэш-памяти (если таковые имеются). В противном случае требуемые файлы создаются по требованию (т.е. в отложенном режиме), если другой контейнер использует те же файлы.According to an embodiment, virtual private servers (containers) can be restored, and can also migrate. A copy of the container can easily be created. The advantage is that no additional steps are required, since the same files located in the cache memory (if any) are automatically used. Otherwise, the required files are created on demand (i.e., in deferred mode) if another container uses the same files.

Следует учитывать, что копирование кэш-памяти или шаблонов не требуется. Кэш-память дискового запоминающего устройства воссоздается автоматически (в отложенном режиме и по требованию) в зависимости от обращений к файлам. Согласно варианту осуществления, виртуальный частный сервер (контейнер) может быть обновлен по сравнению с текущим состоянием. Монтируется контейнер, монтируется образ "ploop", затем копируются файлы. Образ "ploop" выглядит аналогично другим образам дисковых накопителей, например, образам типа ISO (от английского International Organization for Standardization - Международная организация по стандартизации) и др. Иными словами, для файла или индексного дескриптора файловая система выглядит так, как будто бы она является реальной. Альтернативный вариант заключается в сохранении в запоминающем устройстве файлов (шаблонов) вместе с рассчитанными контрольными суммами.Note that copying the cache or templates is not required. The cache memory of the disk storage device is recreated automatically (in deferred mode and on demand) depending on file accesses. According to an embodiment, the virtual private server (container) may be updated compared to the current state. The container is mounted, the "ploop" image is mounted, then the files are copied. The "ploop" image looks similar to other images of disk drives, for example, ISO images (from the English International Organization for Standardization), etc. In other words, for a file or inode, the file system looks like it is real one. An alternative is to store files (templates) in the storage device along with the calculated checksums.

Согласно варианту осуществления, шаблон приложения инсталлируется следующим образом:According to an embodiment, the application template is installed as follows:

пользователя, отладочные данные, настройки и т.д. Пакеты инсталлируются ″как есть″, после чего выполняется сортировка данных;user, debugging data, settings, etc. Packages are installed ″ as is ″, after which the data is sorted;

- ядро операционной системы способствует инсталляции и формирует ″на лету″ контрольные суммы файлов, созданных менеджером пакетов компании Red Hat;- the kernel of the operating system facilitates the installation and generates ″ on the fly ″ checksums of files created by the Red Hat package manager;

- для формирования хэш-атрибутов (контрольных сумм) используется усиленный алгоритм SHA1 (от английского Secure Hash Algorithm 1 - алгоритм криптографического хэширования тип 1).- to generate hash attributes (checksums), the enhanced SHA1 algorithm is used (from the English Secure Hash Algorithm 1 - type 1 cryptographic hashing algorithm).

Следует учитывать, что скорость вычислений алгоритма SHA1 достаточно высока. С использованием современного программного обеспечения скорость составляет около 300 МБ/с. Это значение сравнимо со скоростью передачи данных высокоскоростного дискового запоминающего устройства. Алгоритм SHA1 формирует значения большой длины (20 байт или 40 шестнадцатеричных слов), в связи с чем они должны быть закодированы в 27-символьный формат атрибута контрольной суммы с использованием алфавита [0, 1, …, 9, а, b, …, z, А, В, …, Ζ]. Согласно варианту осуществления, значения атрибутов, рассчитанные по правилу ″SHA1 + длина файла″, сравниваются для выявления совпадающих индексных дескрипторов.Keep in mind that the computation speed of the SHA1 algorithm is quite high. Using modern software, the speed is about 300 MB / s. This value is comparable to the data rate of a high-speed disk storage device. The SHA1 algorithm generates long values (20 bytes or 40 hexadecimal words), in connection with which they must be encoded in the 27-character format of the checksum attribute using the alphabet [0, 1, ..., 9, a, b, ..., z , A, B, ..., Ζ]. According to an embodiment, the attribute values calculated by the ″ SHA1 + file length ″ rule are compared to identify matching inodes.

Согласно варианту осуществления, блок управления и поддержки пользователя кэш-памяти исполняется с использованием отдельного бинкаунтера (бинкаунтера пользователя) или иного контроллера ресурсов. Бинкаунтеры или бинкаунтеры пользователя являются набором ограничений и могут использоваться для предотвращения перегрузки системы работой блоков управления и поддержки пользователя. Бинкаунтеры ресурсов позволяют учитывать и держать под контролем потребление группой процессов ресурсов ядра операционной системы. Полный набор бинкаунтеров пользователя позволяет контролировать:According to an embodiment, the cache management and user support unit is executed using a separate binocounter (user binocounter) or another resource controller. User binocounters or binocounters are a set of restrictions and can be used to prevent system overload from operating control units and user support. Resource binckunters allow you to take into account and control the consumption by a group of processes of the core resources of the operating system. A complete set of user binunchers allows you to control:

- пространство памяти ядра операционной системы. Все объекты ядра операционной системы, размещаемые по требованию пользователя, должны учитываться и ограничиваться для предотвращения сбоя типа "отказ в обслуживании" (от английского DoS - Denial of Service), например, страничные таблицы, структуры данных типа "task struct" (структура данных в ядре операционной системы, содержащая необходимую информацию для управления определенным процессом), "vmas" и т.д.;- memory space of the kernel of the operating system. All objects of the kernel of the operating system, placed at the request of the user, should be taken into account and limited to prevent a Denial of Service failure (for example, English DoS - Denial of Service), for example, page tables, data structures of the type "task struct" (data structure in the kernel of the operating system, containing the necessary information to control a specific process), "vmas", etc .;

- страницы виртуальной памяти.- pages of virtual memory.

Бинкаунтер пользователя позволяет ограничивать объем памяти, используемый контейнером, и вводит двухуровневое ограничение типа "нехватка памяти", следящее за потреблением контейнером ресурсов запоминающего устройства. Страницы, используемые контейнерами совместно, загружаются корректно в виде частей (процедура настраиваемая). Следует учитывать, что обычно ошибка типа "нехватка памяти" возникает, когда операционная система не может увеличить объем виртуальной памяти, поскольку все доступное пространство памяти запоминающих устройств заполнено. Различные операционные системы, такие как Linux, будут пытаться преодолеть подобную нехватку объема памяти путем прекращения выполнения процессов с низким приоритетом, этот механизм известен как "OOM Killer" (от английского Out of Memory Killer - устраняющий ошибку типа "нехватка памяти"). В некоторых случаях утечки памяти (т.е. неконтролируемого уменьшения объема свободной памяти компьютера, связанного с ошибками высвобождения ненужных участков памяти) механизм "OOM Killer" уязвим. Утечка памяти возникает, когда компьютерная программа некорректно выполняет операции размещения в пространстве памяти. В объектно-ориентированном программировании утечка памяти может происходить в случае, если хранящийся в памяти объект оказывается недоступным для выполняемой программы.The user binometer allows you to limit the amount of memory used by the container, and introduces a two-level restriction of the "low memory" type, which monitors the container's consumption of storage resources. Pages shared by containers are loaded correctly as parts (custom procedure). Keep in mind that usually an error such as "out of memory" occurs when the operating system cannot increase the amount of virtual memory, since all available memory space of storage devices is full. Various operating systems, such as Linux, will try to overcome this lack of memory by stopping low-priority processes, this mechanism is known as "OOM Killer" (from the English Out of Memory Killer - eliminating an error like "out of memory"). In some cases, memory leaks (that is, an uncontrolled decrease in the amount of free computer memory associated with errors in the release of unnecessary sections of memory), the OOM Killer mechanism is vulnerable. A memory leak occurs when a computer program incorrectly performs placement operations in memory space. In object-oriented programming, a memory leak can occur if an object stored in memory is inaccessible to the program being executed.

Полный набор бинкаунтеров пользователя также позволяет контролировать:A complete set of user binocounters also allows you to control:

- сетевую буферную память. Эта память включает буферы приема и передачи по протоколу TCP/IP, буферы типа "dgram snd", "unix", "netlink" и др.;- network buffer memory. This memory includes TCP / IP protocol transmit and receive buffers, dgram snd, unix, netlink, and others buffers;

- второстепенные ресурсы, учитываемые по значению:- minor resources, taken into account by value:

- задания и файлы; механизмы и объекты "flock", "ptys", "siginfo", "pinned dcache";- tasks and files; mechanisms and objects "flock", "ptys", "siginfo", "pinned dcache";

- сокеты; механизмы и объекты "mem", "iptentry" (для контейнеров с виртуализированным доступом к локальной вычислительной сети).- sockets; mechanisms and objects "mem", "iptentry" (for containers with virtualized access to the local area network).

Все или некоторые из перечисленных механизмов и объектов могут использоваться для ограничения показателя IOPS (от английского Input/Output Operations Per Second - число операций ввода-вывода в секунду) или пропускной способности или применительно к образу ″ploop″ (для ограничения объема памяти дискового запоминающего устройства, загруженного в кэш-памятью дискового запоминающего устройства).All or some of the listed mechanisms and objects can be used to limit the IOPS (from English Input / Output Operations Per Second - the number of input / output operations per second) or throughput or in relation to the image ″ ploop ″ (to limit the amount of memory of the disk storage device loaded into the cache of a disk storage device).

Контроллеры ресурса ″Virtuozzo™″ в дополнение к управлению использованием пространства памяти и ресурсов системы позволяют:″ Virtuozzo ™ ″ resource controllers, in addition to managing the use of memory space and system resources, allow you to:

- контролировать загрузку ЦПУ; подробные сведения об этом ресурсе приведены в разделе ″Управление распределением времени центрального процессора″;- control CPU utilization; detailed information about this resource is given in the section ″ Control of CPU time allocation ″;

- контролировать квоты дисковой памяти (см. руководство пользователя программного обеспечения ″Parallels Virtuozzo Containers″ компании ″Parallels″, раздел ″Управление ресурсами″);- control disk quotas (see the user guide for ″ Parallels Virtuozzo Containers ″ software from ″ Parallels ″, ″ Resource Management ″);

- формировать и вести учет сетевого трафика (см. руководство пользователя программного обеспечения ″Parallels Virtuozzo Containers″ компании ″Parallels″, раздел ″Управление ресурсами″).- create and keep records of network traffic (see the user guide for ″ Parallels Virtuozzo Containers ″ software from ″ Parallels ″, section ″ Resource Management ″).

В рассматриваемом случае объем памяти ограничен. Если свободный объем памяти для новых записей отсутствует, то старые данные удаляются. Следует учитывать, что для минимизации времени доступа к файлу в кэш-памяти индексный дескриптор файла, содержащий информацию о перенаправлении, должен быть ограничен в размерах таким образом, чтобы умещаться в один блок данных. Использование алгоритма хэширования типа SHA1 позволяет сформировать индексные дескрипторы требуемой длины.In this case, the amount of memory is limited. If there is no free memory space for new records, then the old data is deleted. Keep in mind that in order to minimize access time to the file in the cache, the file inode containing the redirection information must be limited in size so as to fit in one data block. Using a hash algorithm of type SHA1 allows you to create indexes of the required length.

Если блок управления и поддержки пользователя является частью менеджера ресурсов, то она может обращаться ко всем файлам контейнеров и может рассчитывать для этих файлов значения хэш-атрибутов. После этого блок управления и поддержки пользователя может инициировать перемещение и переназначение файлов, к которым должен быть открыт общий доступ.If the control and user support unit is part of the resource manager, then it can access all container files and can calculate hash attribute values for these files. After that, the control unit and user support can initiate the movement and reassignment of files to which should be shared.

На фиг. 4 показана схема алгоритма, реализующего способ согласно варианту осуществления настоящей полезной модели. На шаге 410 создается контейнер. На шаге 420 файлы контейнера сохраняются в приватной директории контейнера. На шаге 430 ядро операционной системы выявляет файлы, к которым обращаются процессы контейнера. На шаге 440 для файлов, используемых процессами контейнера, формируются значения хэш-атрибутов (контрольных сумм). На шаге 450 атрибутам файлов присваиваются значения контрольных сумм и длин файлов.In FIG. 4 is a diagram of an algorithm implementing the method according to an embodiment of the present utility model. At step 410, a container is created. At 420, the container files are stored in the container’s private directory. At step 430, the kernel of the operating system identifies the files that the container processes are accessing. At step 440, hash attributes (checksums) are generated for files used by the container processes. In step 450, the file attributes are assigned checksum values and file lengths.

На шаге 460 ядро операционной системы путем сравнения значений атрибутов (контрольных сумм и длин) файлов с хранящимися в базе данных значениями атрибутов общих для контейнеров файлов выявляет идентичные файлы, используемые другими контейнерами. На шаге 470 выполняется проверка условия: если выявлен факт идентичности файлов, то на шаге 480 файл из приватной директории контейнера копируется к кэш-память дискового запоминающего устройства; в противном случае осуществляется возврат на шаг 460, и ядро операционной системы выполняет проверку другого файла. Наконец, на шаге 490 файлу из приватной директории контейнера назначается ссылка-перенаправление на его копию в кэш-памяти дискового запоминающего устройства. Таким образом, в следующий раз, когда процесс контейнера обращается к упомянутому файлу, процесс перенаправляется на копию файла в кэш-памяти дискового запоминающего устройства.At step 460, the kernel of the operating system, by comparing the attribute values (checksums and lengths) of the files with the attribute values common to the containers stored in the database, identifies identical files used by other containers. At step 470, the condition is checked: if a fact of file identity is detected, then at step 480, the file from the container’s private directory is copied to the cache memory of the disk storage device; otherwise, it returns to step 460, and the kernel of the operating system checks another file. Finally, at step 490, a file from the container’s private directory is assigned a redirect link to its copy in the cache memory of the disk storage device. Thus, the next time the container process accesses the file, the process is redirected to a copy of the file in the cache memory of the disk storage device.

На фиг. 5 показан пример структурной схемы хост-компьютера, который может быть использован в настоящей полезной модели. Пример системы, показанный на фиг. 5, содержит вычислительное устройство общего назначения в виде компьютера или сервера 20 или подобного вычислителя, содержащего вычислительное устройство 21, системное запоминающее устройство 22 и системную шину 23, которая объединяет различные компоненты системы, в том числе, системное запоминающее устройство 22 и вычислительное устройство 21. Системная шина 23 может быть шиной любого типа, в том числе, шиной запоминающего устройства или контроллером запоминающего устройства, периферийной шиной, локальной шиной, и быть построена по любой архитектуре шин. В состав системного запоминающего устройства входят постоянное запоминающее устройство (ПЗУ) 24 и ОЗУ 25.In FIG. 5 shows an example of a block diagram of a host computer that can be used in the present utility model. The example system shown in FIG. 5 comprises a general-purpose computing device in the form of a computer or server 20 or a similar calculator comprising a computing device 21, a system storage device 22 and a system bus 23 that integrates various system components, including system storage device 22 and computing device 21. The system bus 23 can be any type of bus, including a storage bus or a storage controller, a peripheral bus, a local bus, and can be built according to any arch tecture tires. The composition of the system memory includes read only memory (ROM) 24 and RAM 25.

В ПЗУ 24 хранится базовая система ввода-вывода 26, которая содержит базовые процедуры, способствующие передаче информации между составными частями компьютера 20, в частности во время начальной загрузки.The ROM 24 stores the basic input / output system 26, which contains basic procedures that facilitate the transfer of information between the components of the computer 20, in particular during boot.

Компьютер 20 может также содержать: накопитель 27 на жестких дисках для чтения и записи информации на жесткие диски (на фиг. 5 сами жесткие диски условно не показаны); привод 28 магнитных дисков для чтения и записи информации на сменные магнитные диски 29; привод 30 оптических дисков для чтения и записи информации на сменные оптические диски 31, такие, как CD-ROM (от английского Compact disk read-only memory - компакт-диск - постоянное запоминающее устройство), DVD-ROM (от английского Digital video disc read-only memory - цифровой видеодиск - постоянное запоминающее устройство) или оптические машиночитаемые среды другого типа.The computer 20 may also comprise: a hard disk drive 27 for reading and writing information to the hard disks (in Fig. 5, the hard disks themselves are not conventionally shown); a drive 28 of magnetic disks for reading and writing information to removable magnetic disks 29; optical drive 30 for reading and writing information to removable optical disks 31, such as CD-ROM (from English Compact disk read-only memory - CD-ROM - read-only memory), DVD-ROM (from English Digital video disc read -only memory - digital video disc - read-only memory) or another type of optical computer-readable medium.

Накопитель 27 на жестких дисках, привод 28 магнитных дисков и привод 30 оптических дисков подключены к системной шине 23 с помощью интерфейса 32 накопителя на жестких дисках, интерфейса 33 привода магнитных дисков и интерфейса 34 привода оптических дисков соответственно. Приводы и соответствующие машиночитаемые среды обеспечивают компьютеру 20 энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и прочих данных.The hard disk drive 27, the magnetic disk drive 28 and the optical disk drive 30 are connected to the system bus 23 using the hard disk drive interface 32, the magnetic disk drive interface 33 and the optical disk drive interface 34, respectively. Drives and associated machine-readable media provide the computer 20 with non-volatile storage of machine-readable instructions, data structures, software modules, and other data.

Несмотря на то, что в описываемом варианте осуществления используется жесткий диск, магнитный диск 29 и сменный оптический диск 31, специалистам в данной области должно быть понятно, что для хранения данных, доступных компьютеру, могут использоваться машиночитаемые среды других типов, в частности магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи для накопителей Бернулли, накопители на ОЗУ и ПЗУ и т.п.Despite the fact that the described embodiment uses a hard disk, a magnetic disk 29, and a removable optical disk 31, it will be understood by those skilled in the art that other types of computer-readable media, in particular magnetic tapes, can be used to store data accessible to a computer, flash memory cards, digital video disks, cartridges for Bernoulli drives, drives on RAM and ROM, etc.

Некоторое число программных модулей может храниться на жестком диске, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25, в том числе, операционная система 35. Компьютер 20 содержит: файловую систему 36, связанную или входящую в состав операционной системы 35; одну или более прикладных программ 37; другие программные модули 38; данные 39 программ. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, такие, как клавиатура 40 и указывающее устройство 42. В состав прочих устройств ввода (на фиг. 5 не показаны) могут входить: микрофон; джойстик; игровой пульт управления; спутниковая антенна; сканер; другие подобные устройства.A number of program modules may be stored on a hard disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including the operating system 35. Computer 20 includes: a file system 36 connected to or included in the operating system 35; one or more application programs 37; other software modules 38; data from 39 programs. The user can enter commands and information into the computer 20 through input devices, such as a keyboard 40 and pointing device 42. Other input devices (not shown in FIG. 5) may include: a microphone; joystick; game control panel; satellite antenna; scanner; other similar devices.

Перечисленные и прочие устройства ввода обычно соединяются с процессорным устройством 21 через интерфейс 46 последовательного порта, который подключается к системной шине. Однако указанные устройства ввода могут подключаться и через другие интерфейсы, такие, как параллельный порт, игровой порт, порт USB (от английского Universal serial bus - универсальная последовательная шина). Также к системной шине 23 через интерфейс, такой, как видеоадаптер 48, подключается монитор 47 или устройство другого типа для отображения видеоинформации. Помимо монитора 47, персональные компьютеры обычно содержат другие периферийные устройства вывода (на фиг. 5 не показаны), такие, как громкоговорители и принтеры.These and other input devices are usually connected to the processor device 21 via the serial port interface 46, which is connected to the system bus. However, these input devices can also be connected via other interfaces, such as a parallel port, a game port, and a USB port (from the English Universal serial bus - universal serial bus). Also, a monitor 47 or another type of device for displaying video information is connected to the system bus 23 through an interface, such as a video adapter 48. In addition to the monitor 47, personal computers typically include other peripheral output devices (not shown in FIG. 5), such as speakers and printers.

Компьютер 20 может действовать в сетевом окружении с использованием логических подключений к одному или более удаленных компьютеров 49. Удаленным компьютером (компьютерами) 49 могут быть: другой компьютер; сервер; роутер; сетевой персональный компьютер; сетевое устройство, напрямую взаимодействующее с другими устройствами в сетевом окружении; другой узел той же сети. Кроме того, удаленный компьютер 49 обычно содержит многие или все функциональные узлы, описанные выше применительно к компьютеру 20, хотя показано только запоминающее устройство 50. В число логических подключений входят локальная вычислительная сеть (ЛВС) 51 и глобальная вычислительная сеть 52. Описанное сетевое окружение распространено в офисах, вычислительных сетях предприятий, сетях интранет и Интернет.Computer 20 may operate in a networked environment using logical connections to one or more remote computers 49. The remote computer (s) 49 may be: another computer; server; router network personal computer; a network device that directly interacts with other devices in a networked environment; another node on the same network. In addition, the remote computer 49 usually contains many or all of the functional nodes described above with respect to the computer 20, although only the storage device 50 is shown. The logical connections include a local area network (LAN) 51 and a global network 52. The described network environment is common in offices, enterprise computing networks, intranets and the Internet.

При использовании в сетевом окружении ЛВС компьютер 20 подключен к ЛВС 51 через сетевой интерфейс (сетевой адаптер) 53. При использовании в сетевом окружении глобальной вычислительной сети компьютер 20 обычно содержит модем 54 или иное средство установления соединения через глобальную вычислительную сеть 52, такую, как Интернет.When used in a networked LAN environment, computer 20 is connected to the LAN 51 via a network interface (network adapter) 53. When used in a networked environment of a global computer network, computer 20 typically includes a modem 54 or other means of establishing a connection through a global computer network 52, such as the Internet .

Модем 54, который может быть внутренним или внешним, подключается к системной шине 23 через интерфейс 46 последовательного порта. В сетевом окружении программные модули, изображенные относительно компьютера 20 или его частей, могут храниться в удаленном запоминающем устройстве. Следует учитывать, что показанные сетевые подключения служат в качестве примера, и могут использоваться другие средства установления коммуникационного соединения между компьютерами.The modem 54, which may be internal or external, connects to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to computer 20 or parts thereof may be stored in a remote storage device. Note that the network connections shown serve as an example, and other means of establishing a communication connection between computers can be used.

Таким образом, с учетом приведенного описания предпочтительных вариантов осуществления специалистам в данной области должно быть понятно, что описанный способ и система обладают определенными преимуществами. В частности, специалистам в данной области должно быть понятно, что предложенная система и способ обеспечивают эффективное кэширование и совместное использование файлов контейнерами.Thus, in view of the above description of preferred embodiments, those skilled in the art will appreciate that the described method and system have certain advantages. In particular, it will be understood by those skilled in the art that the proposed system and method provides efficient caching and file sharing by containers.

Также должно быть понятно, что в рамках настоящей полезной модели могут быть выполнены различные модификации, адаптации и альтернативные варианты осуществления. Полезная модель определяется следующей формулой полезной модели.It should also be understood that various modifications, adaptations, and alternative embodiments can be made within the scope of this utility model. A utility model is defined by the following utility model formula.

Claims (6)

1. Система размещения и извлечения файлов выделенных серверов, содержащая:1. A system for hosting and extracting dedicated server files, comprising: основной компьютер, обеспечивающий координированный доступ к ресурсам компьютера;The main computer, providing coordinated access to computer resources; хранилище данных, содержащее:A data warehouse containing: - совокупность файлов выделенных серверов, выполненная с возможностью поддержки сервисом файловой системы;- a collection of files of dedicated servers, configured to support the file system service; - совокупность файлов выделенных серверов, расположенных в индивидуальных областях памяти серверов;- a collection of files of dedicated servers located in individual areas of server memory; - кэш-память дискового запоминающего устройства, выполненная с возможностью хранения используемых в текущее время файлов выделенных серверов;- cache memory of a disk storage device, configured to store the currently used files of dedicated servers; - базу данных, хранящую данные внутренних системных имен файлов выделенных серверов;- a database storing data of internal system file names of dedicated servers; - блок управления и поддержки пользователя, сконфигурированный с возможностью сбора статистики обращений к файлам выделенных серверов,- a control and user support unit configured to collect statistics of accesses to files of dedicated servers, в которой:wherein: блок управления и поддержки пользователя выполнен с возможностью копирования файла из индивидуальных областей памяти в кэш-память дискового запоминающего устройства на основе статистики обращений к файлам и данных внутренних системных имен файлов;the control and user support unit is configured to copy a file from individual memory areas to the cache memory of a disk storage device based on statistics of file accesses and data of internal system file names; блок управления и поддержки пользователя выполнен предоставляющим выделенным серверам доступ к данным, хранящимся в кэш-памяти дискового запоминающего устройства, при этом данные внутренних системных имен выделенных серверов содержат атрибуты контрольной суммы файлов и длины файлов.the control and user support unit is made providing dedicated servers access to data stored in the cache memory of the disk storage device, while the internal system names of the dedicated servers contain attributes of the checksum files and file lengths. 2. Система по п. 1, в которой блок управления и поддержки пользователя выполнен обеспечивающим совместное использование файла выделенных серверов из кэш-памяти дискового запоминающего устройства в том случае, если внутренние данные файлов совпадают с используемыми файлами, хранящимися в базе данных.2. The system of claim 1, wherein the user control and support unit is configured to share the dedicated server file from the cache memory of the disk storage device if the internal file data matches the files used in the database. 3. Система по п. 1, в которой сервис файловой системы выполнен назначающим ссылку-перенаправление от индивидуальных областей памяти выделенных серверов на выделенные серверы файлов, скопированные в кэш-память дискового запоминающего устройства.3. The system of claim 1, wherein the file system service is configured to assign a redirect link from the individual memory areas of the dedicated servers to the dedicated file servers copied to the cache memory of the disk storage device. 4. Система по п. 1, в которой сервис файловой системы выполнен с возможностью вычисления значения атрибутов контрольных сумм файлов контейнера при создании этих файлов.4. The system of claim 1, wherein the file system service is configured to calculate the values of the checksum attributes of the container files when creating these files. 5. Система по п. 1, в которой блок управления и поддержки пользователя выполнены с возможностью копирования файлов выделенных серверов в кэш-память дискового запоминающего устройства по требованию.5. The system of claim 1, wherein the control and user support unit is configured to copy files of dedicated servers to the cache memory of a disk storage device on demand. 6. Система по п. 1, в которой блок управления и поддержки пользователя выполнен с возможностью копирования файлов выделенных серверов в кэш-память дискового запоминающего устройства в отложенном режиме, после того, как выявлены файлы выделенных серверов, к которым часто происходит обращение и которые не имеют ссылки-перенаправления на кэш-память.
Figure 00000001
6. The system of claim 1, wherein the user control and support unit is configured to copy files of dedicated servers to the cache memory of a disk storage device in deferred mode, after files of dedicated servers that are often accessed and which are not have cache redirects.
Figure 00000001
RU2014115058/08U 2013-10-29 2014-04-16 SYSTEM OF PLACING AND REMOVING FILES OF DIVIDED SERVERS RU150421U1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/065,710 2013-10-29
US14/065,710 US9286310B1 (en) 2012-11-14 2013-10-29 Common file caching for virtual private servers

Publications (1)

Publication Number Publication Date
RU150421U1 true RU150421U1 (en) 2015-02-20

Family

ID=53292897

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014115058/08U RU150421U1 (en) 2013-10-29 2014-04-16 SYSTEM OF PLACING AND REMOVING FILES OF DIVIDED SERVERS

Country Status (1)

Country Link
RU (1) RU150421U1 (en)

Similar Documents

Publication Publication Date Title
US11675746B2 (en) Virtualized server systems and methods including domain joining techniques
US11537573B2 (en) Elastic, ephemeral in-line deduplication service
US11294777B2 (en) Disaster recovery for distributed file servers, including metadata fixers
KR102444832B1 (en) On-demand storage provisioning using distributed and virtual namespace management
US20210344772A1 (en) Distributed database systems including callback techniques for cache of same
US9697130B2 (en) Systems and methods for storage service automation
US9390055B2 (en) Systems, methods and devices for integrating end-host and network resources in distributed memory
US9558194B1 (en) Scalable object store
US9043555B1 (en) Single instance buffer cache method and system
US7584228B1 (en) System and method for duplication of virtual private server files
US11055265B2 (en) Scale out chunk store to multiple nodes to allow concurrent deduplication
US9817840B1 (en) Common file caching for virtual private servers
US9286310B1 (en) Common file caching for virtual private servers
US9940331B1 (en) Proactive scavenging of file system snaps
US11675745B2 (en) Scalable I/O operations on a log-structured merge (LSM) tree
US11327686B2 (en) Apparatus and method for managing integrated storage supporting hierarchical structure
US10620871B1 (en) Storage scheme for a distributed storage system
US20210064581A1 (en) Small in-memory cache to speed up chunk store operation for deduplication
US20120311002A1 (en) Computer and data management method by the computer
US11593270B1 (en) Fast distributed caching using erasure coded object parts
US11221944B1 (en) Managing metadata for a backup data storage
US8868970B2 (en) Object based storage system and method of operating thereof
US11733894B2 (en) Dynamically formatted storage allocation record
US20220414064A1 (en) Efficient replication of file clones
RU150421U1 (en) SYSTEM OF PLACING AND REMOVING FILES OF DIVIDED SERVERS

Legal Events

Date Code Title Description
MM1K Utility model has become invalid (non-payment of fees)

Effective date: 20170417

NF9K Utility model reinstated

Effective date: 20190826