Xen在Debian Wheezy使用LVM

Xen在Debian使用LVM

作者:Jason Norwood-Young jason [at] freespeechpub dot co dot za

所以你有一些严重的服务器需求。 你想要一堆服务器,有几个操作系统,运行自己的疯狂网站做正确的事情,为世界服务,使之成为一个更好的地方。 只有一个问题 - 你很穷 太糟糕的是,AWS服务器和Rackspace服务器启动,而不会计算他们上班的时间,每次收到帐单时都会哭泣。

不要担心 - 你可以拥有你想要的东西,比那些云服务器的成本更低,特别是如果你需要24/7/365。 通过虚拟化,您可以使用一个beeeg服务器来承载大量的小型服务器。 几乎就像拥有自己的云!

本教程包括在Debian Wheezy之上安装Xen和您的第一个虚拟机。 如果您正在使用Squeeze,请查看Falko Timme的教程 ,该教程用作我的灵感(即使我们做的事情有所不同)。

选择一个服务器来运行它

所以我使用德国Hetzner 。 为什么? 因为他们血腥便宜 使用虚拟环境,您真正寻找的是很多内存。 内存越多,虚拟系统越多,那么它们就越大。 我有两台32GB的服务器,可以让我运行大约8台服务器,每个服务器在1GB到4GB之间,无需麻烦。 这不是任何形式的建议,除了每个月向我们提供辛苦赚来的现金外,我与赫兹纳没有任何关系。

您正在寻找的是一个提供者,将为您提供一个根服务器,便宜,拥有大量内存,以及远程重启和抢救的能力,以防您真的搞砸。

1.安装Xen

我假设您已经安装了Wheezy,您以root用户身份登录,并且已经完成了您需要做的所有apt-get更新和apt-get升级。 所以让我们开始吧!

apt-get install xen-linux-system xen-tools

这安装了Xen,一些高级内容,以及我们稍后将用于创建虚拟映像的非常有用的xen工具。

接下来我们要告诉Xen如何处理网络。 我有一个小小的坦白说:我不是一个网络的人。 其实我憎恶网络。 这是互联网的管道,我拒绝弯腰,显示水管工的裂缝。 而Xen网络很复杂,路由奇怪,桥梁神秘,还有什么其他的。 所以我只是做最简单,最快捷,最脏的解决方案 - 我坚持NAT模式。 (不,我真的不知道NAT是什么,但它有效,好吗?停止提问)

pico /etc/xen/xend-config.sxp

取消注释以下两行:

    (network-script network-nat)
    (vif-script     vif-nat)

即使我们已经安装了Xen,但实际上并没有运行。 Xen在内核级别上运行,这意味着你实际上必须引导进入Xen。

首先,我们需要告诉Debian启动Xen而不是其通常的内核:

dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen update-grub

然后我们需要重新启动:

reboot

我知道你不能等待ssh进入你的新的,令人敬畏的Xen系统,但再给它一次重新启动。

好的,现在试试吧。

现在怎么样?

你呢? 我们好吗 好。 我们继续吧

2.控制Xen

所以现在你想确保Xen实际上正在运行。 在Squeeze上,你可以运行uname -r ,你会看到如下: 2.6.32-5-xen-amd64 。 对于人类未知的一些神秘原因,这在Wheezy上不起作用,反而是这样做的:

xen dmesg
你应该看到像:
(XEN) Xen version 4.1.4 (Debian 4.1.4-3+deb7u1) (carnil@debian.org) (gcc version 4.7.2 (Debian 4.7.2-5) ) Sun May  5 14:44:49 UTC 2013
(XEN) Bootloader: GRUB 1.99-27+deb7u2
(XEN) Command line: placeholder
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN) Disc information:
(XEN)  Found 2 MBR signatures
(XEN)  Found 2 EDD information structures
...

如果你没有看到,你做错了事情。 回去再试一次。 对于其他人,成功! 恭喜! 你现在有一个很棒的Dom0实例!

多米诺 你叫谁?

放松吧 Dom0或Domain 0,是您的主机服务器,您现在的东西是的底部。 客户服务器被称为DomU,可能是因为它也听起来有点侮辱。

xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0 31089     8     r——      8.8

该命令列出了我们所有的虚拟服务器,包括Dom0。 目前,这是我们唯一运行的服务器。

我们可以为xm做很多工作,包括xm create ,它带来一个服务器, xm destroy ,它杀死一个服务器, xm reboot重启服务器,以及xm top ,它监视所有正在运行的服务器。

3.配置LVM

您可以创建Xen服务器作为块设备或LVM实例。 我喜欢LVM,因为它更加manly,它也使得waaay更容易调整分区稍后。

首先,我们需要一个空的,未安装的驱动器来放置LVM。 我没有一个空的,未安装的驱动器,所以我只是要从我的服务器上偷一个。

df -h
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                 1008G  915M  956G   1% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   3.0G  292K  3.0G   1% /run
/dev/disk/by-uuid/5642a4c4-1bcb-49e2-b89c-7d754e6a521a 1008G  915M  956G   1% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   9.2G     0  9.2G   0% /run/shm
/dev/md1                                                496M   34M  437M   8% /boot
/dev/md3                                                1.7T  196M  1.7T   1% /home

1.7TB /家? 你是认真的吗? 这似乎是完全不必要的。

pico /etc/fstab

评论错误的驱动器

#/dev/md/3 /home ext4 defaults 0 0

卸载驱动器

umount /dev/md3

对,现在我们可以创建我们的LVM分区了。

pvcreate /dev/md3
  Writing physical volume data to disk "/dev/md3"
  Physical volume "/dev/md3" successfully created
vgcreate xen-vol /dev/md3
vgdisplay
  --- Volume group ---
  VG Name               xen-vol
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1.71 TiB
  PE Size               4.00 MiB
  Total PE              448996
  Alloc PE / Size       0 / 0
  Free  PE / Size       448996 / 1.71 TiB
  VG UUID               wa0QCN-lBc1-545B-zMwf-vIuS-VXXI-GZAfbW

正义!

4.配置Xen工具

Xen Tools使我们的Xen生活变得更加容易,特别是在创建新服务器时。 但首先我们需要配置一下。

pico /etc/xen-tools/xen-tools.conf
lvm = xen-vol
size   = 20Gb      # Disk image size.
memory = 4Gb    # Memory size
swap   = 512Mb    # Swap size
gateway    = 192.168.1.2
netmask    = 255.255.0.0
broadcast  = 192.168.1.255
mirror = http://ftp.de.debian.org/debian/
mirror_precise = http://archive.ubuntu.com/ubuntu # (and any others you want)
serial_device = hvc0
disk_device = xvda #default
copyhosts = 1

5.创建客服务器

主要事件的时间! 这是您每次要创建新的Xen客户机服务器时重复的过程。

对于我们的第一个测试服务器,我将做一些比我们在xen-tools.conf中设置的默认值更小的东西。 您可以根据需要覆盖命令行上的任何默认值。 由于我们没有使用dhcp服务器,所以每次都需要设置“hostname”和“ip”。 一切都是可选的。

xen-create-image --hostname=test --ip=192.168.1.99 --memory=512Mb --size=5G --swap=256Kb
General Information
--------------------
Hostname       :  test
Distribution   :  wheezy
Mirror         :  http://ftp.de.debian.org/debian/
Partitions     :  swap            256Kb (swap)
                  /               5G    (ext3)
Image type     :  full
Memory size    :  512Mb
Kernel path    :  /boot/vmlinuz-3.2.0-4-amd64
Initrd path    :  /boot/initrd.img-3.2.0-4-amd64
Networking Information
----------------------
IP Address 1   : 192.168.1.99 [MAC: 00:16:3E:27:33:2D]
Netmask        : 255.255.0.0
Broadcast      : 192.168.1.255
Gateway        : 192.168.1.2

Creating swap on /dev/xen-vol/test-swap
Done
Creating ext3 filesystem on /dev/xen-vol/test-disk
Done
Installation method: debootstrap
Running hooks
Done
No role scripts were specified.  Skipping
Creating Xen configuration file
Done
No role scripts were specified.  Skipping
Setting up root password
Generating a password for the new guest.
All done

Logfile produced at:
     /var/log/xen-tools/test.log
Installation Summary
---------------------
Hostname        :  test
Distribution    :  wheezy
IP-Address(es)  :  192.168.1.99
RSA Fingerprint :  de:92:b7:63:55:20:74:46:d3:de:cc:ff:55:22:69:24
Root Password   :  MlkaIn8

这将为我们创建配置文件和分区,但不为我们启动服务器。 配置文件位于/etc/xen/hostname.cfg。 如果您需要更改内存,可以直接编辑此文件。

让我们开始服务器

xm create /etc/xen/test.cfg
Using config file "/etc/xen/test.cfg".
Started domain test (id=1)

什么是很酷的是,“测试”将添加到我们的/ etc / hosts文件中,这意味着我们可以这样做:

ssh test

使用您在xen-create-image输出结尾处收到的密码,然后输入!

确保你可以看到interwebs:

ping google.com
PING google.com (173.194.70.113) 56(84) bytes of data.
64 bytes from fa-in-f113.1e100.net (173.194.70.113): icmp_req=1 ttl=48 time=6.05 ms
64 bytes from fa-in-f113.1e100.net (173.194.70.113): icmp_req=2 ttl=48 time=6.03 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 6.030/6.044/6.058/0.014 ms

喝啤酒

你应得的!

7.将IP地址指向虚拟服务器

您将需要从ISP(称为子网)一堆IP地址。 我每月支付一个额外的8个IP地址。 但让他们直接进入你的虚拟服务器需要一些工作。

pico /etc/network/interfaces
auto br0
iface br0 inet static
  address 192.168.1.2
  netmask 255.255.0.0
  pre-up brctl addbr $IFACE
  post-down brctl delbr $IFACE
/etc/init.d/networking restart
ifconfig br0
br0       Link encap:Ethernet  HWaddr 82:18:d1:b8:37:c9
          inet addr:192.168.1.2  Bcast:192.168.255.255  Mask:255.255.0.0
          inet6 addr: fe80::9118:d1ff:feb8:37c9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:172 (172.0 B)
ip addr add 80.1.2.41 dev eth0
iptables -A PREROUTING -t nat -p all -i eth0 -d 80.1.2.41 -j DNAT --to 192.168.1.99

在使用xen-create时使用--bridge = br0 。 对于现有的/etc/xen/*.cfg文件,请编辑此行:

    vif         = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34' ]

看起来像这样:

    vif         = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34','bridge=br0' ]

如有必要,销毁并创建虚拟服务器。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏