Quantcast
Channel: Netinternet Blog » Linux Üzerine
Viewing all articles
Browse latest Browse all 10

HyperVM’de sunucuları bir başka sunucuya aktarmak (vzmigrate)

$
0
0

Müşterilerimiz üzerinde yaptığımız araştırmalara göre en çok kullanılan sanallaştırma uygulamasının HyperVM olduğunu gördük. Bu konuda yine aldığımız destek biletlerine bakarak en sık sorulanın bir sanal sunucunun diğer sanal sunucu ana makinesine nasıl otomatik aktarılacağıydı. Buna göre bizde konuyu açıklayan ufak bir dokuman hazırlamak istedik.

HyperVM bir sunucuyu diğerine bir çok yolla taşımanız mümkün ancak bunlardan en basit olanı openvz’nin vzmigrate komutu.. Master sunucu Slave sunucu olaylarını birbirine karıştırmadan basitçe bir sanal makineyi farklı bir sanal makine ana sunucusuna vzmigrate komutu ile taşımak mümkün.

Öncelikle bu işlemi yapmadan önce vzmigrate komutunun çalışması için eski sunucunun yeni sunucuya ssh üzerinden şifresiz erişebilmesi gerekmekte bunu mümkün kılan komutlar giriş seviyesi kullanıcıların kafasını karıştırabilir ssh-keygen uygulaması, rsa idleri, authorized_key dosyası buna benzer bir çok ayarı otomatik yapabileceğiniz Kir Kolyshkin tarafından hazırlanmış ufak bir bashscript ile tüm ayarları yaparak sunucuyu vzmigrate komutunu kullanmaya hazır hale getirebileceksiniz. Alt kısımdaki işlemleri taşınacak sanal sunucunun eski ana makinesi üzerinden yapacaksınız.

nano -w /usr/local/bin/ssh-keyput

Yukarıdaki komut ile ilgili dizine ssh-keyput adında bir dosya oluşturuyoruz ve içeriğine alt kısımdaki kodları direk kopyala-yapıştır yöntemi ile kopyalıyoruz.

#!/bin/bash
#
# ssh-keyput -- set up passwordless openssh login.
#
# Copyright (C) 2001, 2002, 2006 by SWsoft.
# Author: Kir Kolyshkin
#
# This script is used to put your public ssh keys to another host's
# authorized_keys[2], so you will be able to ssh login without entering
# a password. Key pairs are generated if needed, and connectivity
# is checked after putting the keys.

PROGNAME=`basename $0`

function usage()
{
echo "Usage: $PROGNAME [user@]IP [[user@]IP ...]" 1>&2
exit 0
}

# Check for correct number of parameters
test $# -gt 0 || usage;

SSH_KEYGEN=`which ssh-keygen`
if test $? -ne 0; then
# Error message is printed by 'which'
exit 1
fi

SSH_DIR=~/.ssh
if ! test -d $SSH_DIR; then
mkdir $SSH_DIR
fi
chmod 700 $SSH_DIR

if [ ! -f $SSH_DIR/identity ] || [ ! -f $SSH_DIR/identity.pub ]; then
echo "Generating ssh1 RSA keys - please wait..."
rm -f $SSH_DIR/identity $SSH_DIR/identity.pub
$SSH_KEYGEN -t rsa1 -f $SSH_DIR/identity -P ''
if [ $? -ne 0 ]; then
echo "Command \"$SSH_KEYGEN -t rsa1 -f $SSH_DIR/identity" \
"-P ''\" failed" 1>&2
exit 1
fi
else
echo "ssh1 RSA key is present"
fi

if [ ! -f $SSH_DIR/id_dsa ] || [ ! -f $SSH_DIR/id_dsa.pub ]; then
echo "Generating ssh2 DSA keys - please wait..."
rm -f $SSH_DIR/id_dsa $SSH_DIR/id_dsa.pub
$SSH_KEYGEN -t dsa -f $SSH_DIR/id_dsa -P ''
if test $? -ne 0; then
echo "Command \"$SSH_KEYGEN -t dsa -f $SSH_DIR/id_dsa" \
"-P ''\" failed" 1>&2
exit 1
fi
else
echo "ssh2 DSA key is present"
fi

SSH1_RSA_KEY=`cat $SSH_DIR/identity.pub`
SSH2_DSA_KEY=`cat $SSH_DIR/id_dsa.pub`

for IP in $*; do
echo "You will now be asked for password for $IP"
#    set -x
ssh -oStrictHostKeyChecking=no $IP "mkdir -p ~/.ssh; chmod 700 ~/.ssh; \
echo \"$SSH1_RSA_KEY\" >> ~/.ssh/authorized_keys; \
echo \"$SSH2_DSA_KEY\" >> ~/.ssh/authorized_keys2; \
chmod 600 ~/.ssh/authorized_keys ~/.ssh/authorized_keys2"
#    set +x
if test $? -eq 0; then
echo "Keys were put successfully"
else
echo "Error putting keys to $IP" 1>&2
fi
done

for IP in $*; do
for ver in 1 2; do
echo -n "Checking $IP connectivity by ssh$ver... "
ssh -q -oProtocol=${ver} -oBatchMode=yes \
-oStrictHostKeyChecking=no $IP /bin/true
if [ $? -eq 0 ]; then
echo "OK"
else
echo "failed" 1>&2
fi
done
done

Komutları kopyaladıktan sonra dosyayı kaydedip çıkıyor ve dosyayı çalıştırılabilir hale getirmek için alt kısımdaki komutu giriyoruz.

chmod a+x /usr/local/bin/ssh-keyput

İşlemleri tamamladığınızda ssh-keyput isimli bash programınız çalışır hale gelecektir. Bu aşamadan sonra 2 sunucuyu birbirine şifresiz bağlamak için alt kısımdaki komutu giriyoruz. (Taşınacak sunucu için örnek IP adresi 10.0.0.3)

ssh-keyput 10.0.0.3

Yukarıdaki komut uygulandığında çıktılar alt kısımdaki örnekte yer alan şekilde olmalı.. Size komutu uyguladığınızda taşınacak sanal sunucu ana makinesinin root şifresini soracak burada yeni taşınacak sunucunun root şifresini yazarak işlemi tamamlıyorsunuz.

root@eskisunucu [~]# ssh-keyput 10.0.0.3
Generating ssh1 RSA keys - please wait...
Generating public/private rsa1 key pair.
Your identification has been saved in /root/.ssh/identity.
Your public key has been saved in /root/.ssh/identity.pub.
The key fingerprint is:
7f:78:16:50:64:de:4f:1a:fe:03:9c:fa:a8:30:d6:ce root@eskisunucu.example.com
Generating ssh2 DSA keys - please wait...
Generating public/private dsa key pair.
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
f0:da:8e:9e:1a:d4:e0:be:54:26:48:dd:6d:fc:c5:5a root@eskisunucu.example.com
You will now be asked for password for 10.0.0.3
Warning: Permanently added '10.0.0.3' (RSA) to the list of known hosts.
root@10.0.0.3's password:
stdin: is not a tty
Keys were put successfully
Checking 10.0.0.3 connectivity by ssh1... failed
Checking 10.0.0.3 connectivity by ssh2... stdin: is not a tty
OK
root@eskisunucu [~]#

Bundan sonra bir sanal sunucuyu diğer sanal sunucu ana makinesine taşımakta işlem.. Yukarıda anlatılanlar uzun olunca bu konunun da uzun olduğunu düşünmeyin tüm işi tek bir komut ve bunun parametreleri yapıyor.. Yukarda bahsettiğim vzmigrate komutu. Yapmanız gereken taşınacak sanal sunucunun ana makinesine ssh bağlantısı yaparak alt kısımdan VEID sini öğrenmek..

vzlist -a

Yukarıdaki komut açık veya kapalı sunucuları ekranınıza listeler ve hangi sunucuyu taşıyacagınızı bu şekilde öğrenirsiniz. Örnek çıktı alt kısımda


VEID  NPROC    STATUS    IP_ADDR         HOSTNAME
102       9   running   10.0.0.5  vm1.example.com
103      11   running   10.0.0.3  vm2.example.com

Yukarda listelenen sanal sunuculardan 10.0.0.7 IP adresine sahip olanı taşımak isterseniz VEID kısmındaki 103 numarası ile vzmigrate aracı ile bunu nasıl yapacağımızın komutunu alt kısımda veriyorum.

vzmigrate --online 10.0.0.3 103

Yukarıdaki komutu uyguladıktan sonra bir çay veya kahve molası verip tekrar geri döndüğünüzde VEID 103 numaralı sanal sunucu yeni sanal sunucu ana makinesine taşınmış olacaktır. Üstelik bu işlem sırasında taşınan sanal sunucu herhangi bir şekilde kapalı kalmayacaktır. Online taşımada bazen versiyon farkları veya quota sorunu nedeni ile sorun oluşabilir bu gibi durumlarda –online parametresini kaldırarak sunucuyu kapalı bir şekilde taşıyabilirsiniz. Kapalı taşıma normal Online taşımadan çok daha hızlı tamamlanmaktadır.

Tüm bunların dışında aktarılan sanal sunucunun HyperVM panelde görünmesi  için yapmanız gereken ufak bir işlem daha var..  Server sekmesini açıp en alt kısımda bulunan Import Raw VPS butonuna basmak ve  açılan diğer sayfada tekrar Import tuşuna basarak taşınmış sanal sunucuyu VEID adı ile HyperVM’e aktarmak. Bu bu yöntemle taşınan sunucuların HyperVM kullanıcı adları ve HyperVM ile ilgili ayarları sıfırlanmakta bunları taşıdıktan sonra baştan yaratmanız gerekiyor.

Tüm bu konularla ilgili sormak istediklerinizi dokümanın altından yorum bırakarak yazabilirsiniz.


Viewing all articles
Browse latest Browse all 10

Trending Articles


Hamile kalmak için


Şekilli süslü hazır floodlar


Havas-ul Kur-an Kenzul Havas PDF


Hamile kalmak için


EL-AZÎM Esması ve Sırları


En etkili korumlardan birisi


Enerji Beden ve İki Uygulama-1


Foxtrot Six Türkçe Dublaj izle (2020)


SCCM 2012 Client Installation issue


Hakan Sabancı 4 ayrı adrese Sevgililer Günü buketi gönderdi!