Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Linux VServer — Linux ядросына операциялық жүйе деңгейіндегі виртуализация мүмкіндіктерін қосу арқылы құрылған виртуалды жеке серверді іске асыру болып табылады. Ол ашық кодты бағдарламалық жасақтама ретінде әзірленеді және таратылады.
OS level virtualisation
Linux VServer is a virtual private server implementation that was created by adding operating system level virtualization capabilities to the Linux kernel. It is developed and distributed as open source software.
Егжей-тегжейлер
Жобаны Жак Гелинас бастады. Қазір оны Герберт Пёцл күтіп ұстайды. Ол желілік жүктемені теңестіретін Linux Virtual Server жобасымен байланысты емес. Linux VServer – бұл компьютер жүйесіндегі ресурстарды (файл жүйесі, процессор уақыты, желілік мекенжайлар және жад) процестердің бөліністерінен тысқары нәрселерге қызметтен бас тарту шабуылдарын жасауына жол бермейтіндей етіп, қауіпсіз бөлуге арналған түрме механизмі. Әр бөлім қауіпсіздік контексі деп аталады, ал оның ішіндегі виртуалды жүйе – виртуалды жеке сервер. Қауіпсіздік контексіне ену үшін chroot сияқты құрал қарастырылған. Виртуалды жеке серверді іске қосу жаңа қауіпсіздік контексінде init-ті бастау арқылы жүзеге асырылады, ал оны өшіру – сол қауіпсіздік контексіндегі барлық процестерді тоқтатуды білдіреді. Контекстер көптеген Linux дистрибутивтерін, соның ішінде Debian және Fedora-ны өзгеріссіз іске қосуға жеткілікті деңгейде сенімді. Виртуалды жеке серверлер веб-хостинг қызметтерінде кеңінен қолданылады, олар клиенттердің шоттарын бөлуге, ресурстарды біріктіруге және кез келген қауіпсіздік бұзушылықтарын шектеуге көмектеседі. Мұндай орналымдарда орынды үнемдеу үшін әрбір виртуалды сервердің файлдық жүйесі «үлгі» файлдық жүйесіне жазуға болатын қатты сілтемелер ағашы ретінде құрылуы мүмкін. Қатты сілтеме арнайы файлдық жүйе атрибутымен белгіленеді және өзгертілген кезде файлдың нақты көшірмесімен қауіпсіз және түсінікті түрде алмастырылады. Linux VServer 2.6 сериялы ядролар үшін екі тармақ – тұрақты (2.2.x) және devel (2.3.x), сондай-ақ 2.4 сериялы ядролар үшін бір тұрақты тармақ ұсынады. Grsecurity патч жиынтығын интеграциялаған жеке тұрақты тармақ та қолжетімді.
The project was started by Jacques Gélinas. It is now maintained by Herbert Pötzl. It is not related to the Linux Virtual Server project, which implements network load balancing. Linux VServer is a jail mechanism in that it can be used to securely partition resources on a computer system (such as the file system, CPU time, network addresses and memory) in such a way that processes cannot mount a denial of service attack on anything outside their partition. Each partition is called a security context, and the virtualized system within it is the virtual private server. A chroot like utility for descending into security contexts is provided. Booting a virtual private server is then simply a matter of kickstarting init in a new security context; likewise, shutting it down simply entails killing all processes with that security context. The contexts themselves are robust enough to boot many Linux distributions unmodified, including Debian and Fedora. Virtual private servers are commonly used in web hosting services, where they are useful for segregating customer accounts, pooling resources and containing any potential security breaches. To save space on such installations, each virtual server's file system can be created as a tree of copy on write hard links to a "template" file system. The hard link is marked with a special filesystem attribute and when modified, is securely and transparently replaced with a real copy of the file. Linux VServer provides two branches, stable (2.2. x), and devel (2.3. x) for 2.6 series kernels and a single stable branch for 2.4 series. A separate stable branch integrating the grsecurity patch set is also available.
Артықшылықтар
Виртуалды серверлер бірдей жүйелік шақыру интерфейсін бөліседі және эмуляцияның қосымша шығындары жоқ. Виртуалды серверлерге міндетті түрде түсініксіз дискілік бейнелер қажет емес, олар ортақ файлдық жүйемен және файлдардың ортақ жиынтығымен (жазу кезіндегі қатты сілтемелер арқылы) бөлісе алады. Бұл жүйенің сақтық көшірмесін жасауды және виртуалды серверлер арасында дискілік кеңістікті біріктіруді жеңілдетеді. Виртуалды сервердегі процестер хост жүйесіндегі қалыпты процестер ретінде жұмыс істейді. Бұл толық жүйелік эмуляцияға қарағанда жадты тиімдірек және I/O тиімдірек пайдалануды қамтамасыз етеді, бірақ жадты кеңейту және қазіргі заманғы виртуалды машиналар пайдаланылмаған жадты қайтаруға және хостпен және басқа виртуалды серверлермен дискілік кэшті бөлісуге мүмкіндік береді. Виртуалды сервердегі процестер хосттағы сияқты бір реттегішке кезекке қойылады, бұл қонақ процестерінің SMP жүйелерінде бір уақытта жұмыс істеуіне мүмкіндік береді. Мұны толық жүйелік эмуляциямен іске асыру оңай емес. Желілік байланыс виртуализация емес, оқшаулау негізінде құрылған, сондықтан пакеттер үшін қосымша шығын болмайды. Қауіпсіздік қатері азайтылған. 2+ ядроға және олар арасындағы үлкен интерфейстерге қарағанда аз қосымша код базасы бар бір ядро ғана. Linux-тың нақты уақыттық басымдықтары сияқты жоспарлау мүмкіндіктері.
Virtual servers share the same system call interface and do not have any emulation overhead. Virtual servers do not have to be backed by opaque disk images, but can share a common file system and common sets of files (through copy on write hard links). This makes it easier to back up a system and to pool disk space amongst virtual servers. Processes within the virtual server run as regular processes on the host system. This is somewhat more memory efficient and I/O efficient than whole system emulation, although memory ballooning and modern VMs allow returning unused memory and sharing disk cache with the host and other virtual servers. Processes within the virtual server are queued on the same scheduler as on the host, allowing guest's processes to run concurrently on SMP systems. This is not trivial to implement with whole system emulation. Networking is based on isolation rather than virtualization, so there is no additional overhead for packets. Smaller plane for security bugs. Only one kernel with small additional code base compared to 2+ kernels and large interfaces between them. Rich Linux scheduling features such as real time priorities.
Кемшіліктер
Хост ядросының түзету қажеттілігі бар. Кластерлеу немесе процестерді көшіру мүмкіндігі қарастырылмаған, сондықтан хост ядросы мен хост компьютері барлық виртуалды серверлер үшін жалғыз сәтсіздік нүктесі болып қалады. Желілік байланыс виртуалдандыруға емес, оқшаулауға негізделген. Бұл әр виртуалды серверге өз ішкі маршрутизациясын немесе қабырға өртін (firewall) орнатуға мүмкіндік бермейді. Кейбір жүйелік шақырулар (көбінесе аппараттық құралдармен байланысты, мысалы, нақты уақыт сағаты) және /proc және /sys файлдық жүйелерінің бөліктері виртуалданбаған күйде қалады. Әр виртуалды сервер үшін дискіге I/O өткізу қабілетін бөлуге рұқсат етілмейді.
Requires that the host kernel be patched. No clustering or process migration capability is included, so the host kernel and host computer is still a single point of failure for all virtual servers. Networking is based on isolation, not virtualization. This prevents each virtual server from creating its own internal routing or firewalling setup. Some system calls (mostly hardware related: e. g. real time clock) and parts of the /proc and /sys filesystems are left unvirtualized. Does not allow disk I/O bandwidth to be allocated on a per virtual server basis.