Здравейте отново всички. Днес ще продължим с тази поредица статии за администрирането на OpenVZ, В предишен пост ние обхващаме всичко, свързано с монтаж от OpenVZ.
Така че, ако всичко върви добре, вече трябва да имаме нашия сървър OpenVZ инсталиран и готов за започване на работа с него.
Днес ще говорим за всичко, свързано с администрирането на контейнери, както неговото създаване, така и неговата конфигурация и управление.
Създаване на контейнери
Лос контейнери o електромобилите Те са виртуални среди (виртуални машини), които ще създаваме и управляваме с нашия сървър OpenVZ. За да ги създадем, трябва да имаме шаблон.
Лос шаблони те са моделът, от който ще бъде изграден контейнерът. Те съдържат различните пакети, необходими за работата на системата и някои основни приложения, както и всички метаданни (кеш на шаблон) за изграждане и конфигуриране на машината.
Има различни шаблони разпределения de Linux. Някои от тях се поддържат официално, а други са приноси от общността.
Най-простият начин да ги получите е да използвате един от предварително създадени шаблони. Те са получени чрез създаване на контейнер от шаблон и след това опаковането му във файл gzip.
Тези компресирани файлове ще бъдат тези, които ще изтеглим и от които ще създадем свои собствени контейнери. По този начин създаването на контейнери е много по-бързо и лесно, отколкото в миналото, когато кешът трябваше да се генерира на ръка. Всичко, което трябва да направите днес, е да изтеглите файла от избраната от вас дистрибуция от тази страница:
http://openvz.org/Download/template/precreated
Веднъж изтеглени, ние го запазваме, както е в тази директория на нашия сървър:
/vz/template/cache
Сега можем да създадем нашите контейнери от инсталираните шаблони. Първото нещо, което трябва да имате предвид, е, че всеки контейнер има свързан с него цифров идентификатор, който служи за идентифициране на VE и че не може да се повтори в рамките на един и същ физически хост.
Също така идентификаторът трябва да е по-голям от 100, тъй като идентификаторите от 0 до 100 се използват от системата.
За да управлявате контейнери, най-важната команда е vzctl. Следният синтаксис се използва за създаване на нов контейнер:
#vzctl create --ostemplate template --config config_file
В ostemplate поставяме името на шаблона, който сме изтеглили преди. Конфигурационният параметър не е задължителен. В него поставяте името на файл с предварително дефинирани конфигурации за контейнерите.
Ако не го посочим, ще трябва да ги сложим на ръка. Конфигурационните файлове се намират на:
/etc/sysconfig/vz-scripts
Имената на файловете имат тази структура:
ve-nombre_config.conf-sample
Най-често срещаният е basic
(ve-basic.conf-sample). Можем да използваме тези, които са създадени по подразбиране или да направим свои собствени. Във всеки случай всички посочени стойности могат да бъдат модифицирани по-късно.
Например, за да създадем контейнер с ID 101, от шаблон на debian, който изтеглихме преди и използвайки основната конфигурация, изпълняваме:
#vzctl create 101 --ostemplate debian-6.0-x86 --config basic
Конфигурация на контейнера
След като създадохме нашия контейнер, можем да преминем към неговото конфигуриране. За това използваме следния синтаксис:
#vzctl set --parametro valor --parámetro valor […]
Има много параметри, които можем да конфигурираме. За да се консултираме с тях, всички можем да отидем на ръководството vzctl (#човек vzctl) или да openvz wiki.
За да ги променим, те остават след изключване на системата, трябва да добавим –съхранение в края на командата. Ако не, ще продължи само до следващото изключване.
Тук ще обясним някои от най-основните команди:
Конфигурирайте контейнера да се стартира, когато компютърът се стартира или не.
onboot [yes/no]
Посочете името на хоста на компютъра
hostname
Добавете IP адрес към устройството. Те се добавят кумулативно.
ipadd
Ако искаме да изтрием някоя от предварително конфигурираните, трябва да използваме:
ipdel dir_ip|all
Конфигурирайте адреса на DNS сървърите. Можете да използвате тази опция няколко пъти в една и съща команда, за да конфигурирате множество сървъри. Това ще замени всички предварително конфигурирани сървъри на имена.
nameserver
Задайте паролата за системен потребител. Ако не съществува, създайте го. Препоръчително е да не използвате този параметър заедно с други. Не е необходимо да се използва save
с този параметър.
userpasswd user:password
Показва реда, в който машината ще стартира при стартиране. Колкото по-голям е броят, толкова по-голям приоритет ще има той. Ако не е конфигуриран, се счита, че има най-нисък приоритет и всеки друг конфигуриран контейнер ще стартира първи.
bootorder
И накрая, оставям ви като пример изпълнението на основна конфигурация за контейнер 101
#vzctl set 101 --onboot yes --hostname virtualhost --ipadd 192.168.1.10 --nameserver 8.8.8.8 --nameserver 4.4.4.4 --save #vzctl set 101 --userpasswd root: 1234
Управление на контейнери
След като създадем и конфигурираме нашите контейнери, можем да ги управляваме. За целта отново ще използваме командата vzctl. Някои от основните команди за управление на контейнери са изброени по-долу:
Стартирайте контейнера
#vzctl start ID
Спира контейнера
#vzctl stop ID
Спира контейнера, без да чака всички негови процеси да спрат
#vzctl stop ID --fast
Казва ни състоянието на контейнера
#vzctl status ID
Унищожете контейнера. Преди да е необходимо да го спрете.
#vzctl destroy ID
Влизате в машината през командния ред, сякаш имаме достъп до ssh.
#vzctl enter ID
Изпълнете команда в контейнера.
#vzctl exec ID comando
Избройте контейнерите, които са активни на сървъра. С опцията -a избройте и задържаните.
#vzlist
Това е всичко за днес. С това завършваме най-основната част от администрацията на OpenVZ.
В следващите няколко статии ще говорим за по-усъвършенствани процедури, като управление на ресурси, изпълнение архивиране или използването на мляко.
Дотогава можете да опитате всичко, което обяснихме досега. Както винаги, оставете всички въпроси, които имате, в коментарите и до скоро. Дълъг живот и просперитет.
Отлична статия !! 😉
Много благодаря!. Много се радвам, че успях да публикувам тези статии. Ще продължа да работя усилено и да си сътруднича, където мога. Дълъг живот и просперитет.
Много интересни статии за OpenVZ. Да видим дали ме насърчавате да го пробвам, отдавна съм си гледал въпроса. Тук оставям няколко коментара:
Напълно не знам как работи OpenVZ и едно от големите съмнения, които имам, е защо е необходимо да настроите мрежовата конфигурация на ръка за всяка машина. Не можете да го получите от DHCP сървър? Тоест, може ли да се предостави MAC + мост и след това машините да се управляват сами, за да получат мрежовата конфигурация? (Защото в статиите за OpenVZ, които успях да прочета, той винаги е конфигуриран с IPv4, но какво да кажем за IPv6?)
Нещо повече, ако трябваше да конфигурирам статично мрежовите настройки, какво лошо има да го правя от "вътре" на машината? И какво е това, за да присвоите име на хост от хоста? Накратко, изглежда ми излишно и излишно и бих искал да знам защо е необходимо или препоръчително.
Между другото, не знам дали ще засегнете темата, но бих се интересувал от статия за сигурността и поверителността при използването на OpenVZ. Във VirtualBox съм свикнал да не се "виждам" нито с хоста, освен ако искам чрез мрежа или споделени папки. Чудя се например какъв риск съществува при създаването на меден съд с OpenVZ. Коментирам го като идея, в случай че искате да пишете за него.
Много се радвам, че харесвате публикациите и ви препоръчвам да опитате OpenVZ. Ще видите, че е невероятно лесно да се управлява.
Що се отнася до вашите съмнения, повечето са свързани с неща, за които все още не сме говорили. Но ще ви дам малко въведение, за да ги разрешите.
Първото нещо, което трябва да знаете, е, че в OpenVZ има два типа конфигурации за мрежата. Може да се използва Venet или Veth. Първият е подобен на частна мрежа, т.е.достъпен само от контейнерите и физическия хост. В очите на други машини в мрежата сякаш те не съществуват. От друга страна, veth е виртуална мрежова карта, която кара контейнера да работи като друг компютър в мрежата и може да бъде достъпен от други машини. Той също така позволява по-разширени опции като използването на DHCP или мрежовата конфигурация от контейнера.
По отношение на IPv6 и двата режима го поддържат. Можете да използвате командата ipadd без ipv6 адрес без проблеми. Разбира се, с venet не всички функции работят. Тъй като картата на venet няма свързан MAC, неща като откриване на съседи или реклами на рутери не работят.
Що се отнася до факта, че трябва да конфигурирате характеристиките външно, според мен това е начин да улесните работата на администраторите. Позволява ви да променяте характеристиките лесно и може да го автоматизира почти без усилие. И, както споменах в статията, можете да създадете свой собствен конфигурационен модел, от който да създавате машините, като по този начин елиминирате много главоболия.
И накрая, по отношение на сигурността, силно се препоръчва използването на OpenVZ за създаване на медни съдове. OpenVZ напълно изолира контейнерите от физическата система и изглежда реален за нападателя. И всичко това с много ниско потребление на ресурси. Това е чудесна възможност за изграждане на медни съдове (въпреки че има по-прости и специално фокусирани опции за него).
Надявам се да съм разрешил съмненията ви. Ако имате друга или тема, която бихте искали да разгледам, не се колебайте да го кажете. Ще се видим скоро. Дълъг живот и просперитет.
Здравейте, тази поредица от публикации е много добра, исках да се консултирам със следното: Опитвам се да възстановя някои резервни копия на някои контейнери на OpenVZ (някои .tar файлове), които се изпълняват на хост с Ubuntu Server, те се правят със следното команда:
vzdump –suspend ID –mailto root –dumpdir / архиви / файл
Този хост има следната версия: vzctl версия 3.0.22
Сега идеята би била да мога да възстановя тези контейнери на сървър CentOS 6. При създаването на нови виртуални машини нямам проблеми, но не мога да намеря начин да възстановя тези архиви (на CentOS имам следната версия: vzctl версия 4.7.2)
Прочетох това:
https://openvz.org/Quick_Installation_CentOS_6
http://wiki.centos.org/HowTos/Virtualization/OpenVZ
http://www.howtoforge.com/installing-and-using-openvz-on-centos-6.4-p2
И разбира се това би било публикация 😉 😀
От това, което видях, че повечето от тях говорят за използването на vzrestore или vzdump –restore, но не мога да накарам възстановяването да работи. (Нямам vzrestore в CentOS 6 и нямам флага –restore и в vzdump) Със сигурност нещо ми убягва поради липса на опит по въпроса 😛
Тук идват въпросите:
Възможно ли е да правя това, което искам? Някаква пречка?
Какъв би бил начинът да го направя? Трябва ли да инсталирам vzrestore по някакъв начин?
Препоръка? Четене?
Благодаря за вашия принос, поздрави
Здравейте, благодаря за вашия коментар.
По отношение на вашите въпроси, по принцип не би трябвало да има проблем. Всъщност си спомням, че се натъкнах на това отдавна и го реших навремето. Но в момента нямам достъп до документацията, която направих за себе си и тъй като не съм я пипал от известно време, не мога да си спомня. Но не се отчайвайте, след малко ще инсталирам машина с OpenVZ и след малко ще ви го реша. И така между другото, може би ще се върна към тази поредица от постове, които малко съм изоставил.
Дълъг живот и просперитет.
Благодаря за отговора ви, наистина бих оценил, ако можете да го видите.
(Освен това новите публикации, които могат да се появят по темата, със сигурност са много полезни)
Едно от нещата, които привличат вниманието ми, е, че в CentOS 6.5, който инсталирам, това са инструментите, които той инсталира:
vzcalc, vzcptcheck, vzctl, vzdqdump, vzeventd, vzifup-post, vzmemcheck, vznetaddbr, vzoversell, vzquota, vzstats, vzubc, vzcfgvalidate, vzcpucheck, vzdqqcheck, vzmigt-vzmigplqznet, vzmgzgltvp, vzmgzlgtp, vzmgzglvpl
Следвайки стъпките в официалната документация: https://openvz.org/Quick_Installation_CentOS_6
И във флаговете, които виждам в vzdqdump man, нямам флаг за възстановяване. Също така виждам, че в vzctl man имам някои флагове –snapshot *, но не знам дали това търся или как да ги използвам точно.
Е, след като се бих с openvz и мъчителната лекота на документацията му, мисля, че най-накрая го разбрах. Всъщност трябва да използвате vzrestore, който се доставя в комплект с vzdump. Но в CentOS те не са инсталирани и трябва да го направите на ръка. Процесът е малко объркан (достатъчно, за да удариш главата си в клавиатурата), затова импровизирах статия в мой блог, който отворих наскоро.
URL адресът е: https://kamisama666.github.io/2014/07/instalacion-vzdump-centos6/
Надявам се, че съм бил от помощ, ще ми кажете как е минало. О, и тъй като питате, опцията "моментна снимка" работи само за контейнери от тип ploop, което е различна форма на съхранение от обичайната в openvz. По-интересно е „суспендиране“ и „възстановяване“, които са в състояние да запазят състоянието на контейнер и да го възстановят по-късно (но не, не е съвместимо с vzdump). Така или иначе, за да видя дали ще повторя публикациите и ще говоря за тези неща.
Дълъг живот и просперитет.
Нямате представа какво оценявам този пост. В понеделник ще го пробвам и ще ви кажа, очаквам с нетърпение да възобновите нова поредица от публикации по темата. И разбира се ще споделя вашия пост, че със сигурност някой друг го намира за полезен 😉 Ще ви разкажа как беше в понеделник, поздрави.
Me aligro de que te haya servido de ayuda. De hecho, ya que tenía el post hecho, he aprovechado y lo he publicado también en desdelinux para que lo vea más gente. Lo puedes encontrar aquí:
https://blog.desdelinux.net/vzdump-instalarlo-centos-6-5/
Дълъг живот и просперитет
Приятелю, имам проблем следвайки стъпките за конфигуриране, въпросът е, че от машината, където конфигурирам новата си виртуална машина, се вижда, но от мрежовия сегмент не е, например:
Имам сегмент 1. *, хостът ми A има 1.50, а новата VM B има 1.201, от машина A виждам B, но не и от друг компютър, свързан към същата мрежа,
Бихте могли да ме илюстрирате с това, което не успявам
Отлична статия и много ми помогна, сега заявка, имам контейнер, който вече е в производство с шаблон на debian-7 и искам да го актуализирам до debian-8 същия контейнер, как да го направя?
Здравейте благодаря ви много. От известно време съм изключен от OpenVZ, но ще се опитам да ви помогна с каквото мога.
На първо място бих ви казал, че ако е възможно, помислете за създаване на нов контейнер от шаблона на Debian 8 и постепенно мигриране на данните и конфигурацията от стария контейнер към новия. След това просто трябва да поставите IP на старата машина на новата и фиксирана. Това е най-лесният и опростен начин.
От друга страна, ако това не е възможно по някаква причина, на теория е възможно да актуализирате дистрибуцията от самия контейнер, както бихте направили на всяка друга машина на Debian. Но съм чувал от хора, които са имали проблеми с това, така че първо опитайте с всеки друг контейнер. И ако имате проблеми, има няколко сайта, които говорят за това как да ги разрешите (на английски):
https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
http://forum.openvz.org/index.php?t=msg&goto=51280&
http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit
Погледнете най-вече първата, която е най-новата и ви обяснява всичко стъпка по стъпка.
Разбира се, преди да правите някакви промени в контейнера си в производството, дори не е нужно да ви казвам да направите резервно копие на контейнера, студено или горещо, според случая, в случай че нещо се обърка.
Надявам се да съм помогнал. Дълъг живот и просперитет.
Здравейте благодаря ви много. От известно време съм изключен от OpenVZ, но се надявам да мога да ви помогна.
На първо място, ако няма нищо, което да ви спре, препоръчвам ви да създадете нов контейнер с шаблона Debian 8 и да мигрирате всички конфигурации, данни и софтуер там. След като всичко работи, просто трябва да смените IP на стария контейнер и да го поставите в новия. Това е най-простият и бърз начин наистина.
Ако по някаква причина не е възможно да направите това, на теория е възможно да актуализирате разпространението от самия контейнер. Просто трябва да го направите както на нормална машина на Debian. Но съм чувал от хора, които са имали проблеми, въпреки че не бива да се случва, ако поддържате актуализираното ядро на хоста. Както и да е, най-доброто нещо, което можете да направите, е да опитате да актуализирате с друг контейнер с debian 7, за да сте сигурни, че той не създава проблеми. И ако намерите такива, ето няколко страници, които разказват как да го поправите (на английски):
https://www.skelleton.net/2015/05/04/upgrading-debian-guests-on-proxmox-to-jessie/
http://justinfranks.com/linux-administration/upgrade-openvz-vps-from-debian-7-wheezy-64-bit-to-debian-8-jessie-64-bit
http://forum.openvz.org/index.php?t=msg&goto=51280&
Особено интересен е първият, който е най-новият и обяснява всичко стъпка по стъпка.
Въпреки това не е нужно да ви казвам, че каквото и да решите, не правете нищо с контейнера в производството, без първо да направите резервно копие, било топло или студено, в случай че нещо се случи.
Надявам се да съм ви помогнал. Дълъг живот и просперитет
Благодаря за отговора, помощта е страхотна, ще прочета статията и ще направя няколко теста и тогава ще ви кажа кой е най-добрият, поздрави.
Здравейте добре, имам грешка с контейнерите openvz и не мога да намеря никаква логика. Виждайки този блог с част от коментари, стартирам заявката тук, в случай че някой може да ми помогне.
Инсталирах openvz без проблем и създадох контейнери без проблем, монтирах проста уеб услуга в един от тях и получих достъп.
Факт е, че когато се опитвам да извърша актуализация, например: »apt-get update», това ми казва, че няма връзка с ips на хранилищата и не изтегля нищо, така че не мога да актуализирам или инсталирам нови пакети. Ако пингнете тези ips, има ли нещо, което да ми липсва?
Благодаря предварително
Здравей отново.
Отне ми много време да отговоря, но решението намерих отдавна и не исках да го оставя в ефир.
Проблемът беше най-вече в това, че не съм много умен, обикновено той е източникът на повечето ми проблеми, имах nateo, който пренасочваше всичко, което дойде през порт 80 към обратния прокси сървър, когато правеше актуализацията apt-get, тя го стартира но отговорите бяха пренасочени към споменатия екип, конфигурирането на iptables правилно го решава и всичко върви гладко, както е логично.
Благодаря за входа на OpenVZ, той ми помогна да го конфигурирам доста добре
PS: Научих, че актуализациите се извършват през порт 80, мислех, че ще използвам произволен от 1000 ...
За поздрав.