Gentzo x64 + xenをHetznerの3Tbディスクに配置しました

目的:3つの独立したリモートデスクトップを2、3個整理する必要があるとします。 ただし、個別のサーバーである各rdpをレンタルしないでください。1つをレンタルして、そこに少なくとも16個を作成できます。



hetzner.deでEX4クラスのサーバーをいくつかレンタルしたところ、サーバーに2つの3Tbディスクがインストールされたという問題に直面しました。 MBRパーティションテーブルを持つディスクは2.2 TBしかアドレスできないという既知の問題があります。 MBRを構成して800ギガバイトのディスクスペースを放棄するか、GPTテーブルを作成してそこからブートしようとするかの2つのオプションがありました。これは簡単ではありませんが、実際には単純です。

さらに、Xenを置くための小さなハウツー。



ステップバイステップ

サーバーをレンタルした後、IP、ログイン、およびパスワードが新しいサーバーに送信されます。sshによって、Debianに基づいたレスキューシステムに入りますが、これは私たちにとって邪魔ではありません。

2つのsdaおよびsdbディスクをraid1アレイに結合し、その上にLVMを作成することが決定されました。それを危険にさらさないために、ブートを別のパーティションに配置することが決定されました。efi用の追加パーティションも必要です。

プログラムを中断します

gdisk /dev/sda
      
      





起動する最初のセクションを作成します

 Command:n Partition Number: 1 ↵ First sector: ↵ Last sector: +100M ↵ Hex Code: ↵
      
      





efiになる2番目のセクションを作成します

 Command: n ↵ Partition Number: 2 ↵ First sector: ↵ Last sector: +32M ↵ Hex Code: EF02 ↵
      
      





彼がセクションのタイプを示すことは非常に重要であることに注意したい。

LVMの下に3番目のセクションを作成します

 Command: n ↵ Partition Number: 3 ↵ First sector: ↵ Last sector: ↵ Hex Code: ↵
      
      





wコマンドを使用してデータをディスクに書き込み、終了します。

sdbドライブについても同じことを行います。

ライドアレイを作成します。

ブート用の配列:

 mdadm –C /dev/md0 –-level=1 -–raid-devices=2 -–metadata=0.9 /dev/sd[ab]1
      
      





LVMの配列:

 mdadm –C /dev/md1 –-level=1 –-raid-devices=2 /dev/sd[ab]3
      
      





同期が正常に開始されたことを確認します。
 cat /proc/mdstat
      
      





LVMグループを作成します。

 pvcreate /dev/md1 vgcreate ld1 /dev/md1 vhchange –ay
      
      





LVMセクションを作成します。

 lvcreate –L2G –n swap ld1 lvcreate –L8G –n root ld1
      
      





セクションをフォーマットします。

 mkswap /dev/ld1/swap mkreiserfs /dev/md0 mkreiserfs /dev/ld1/root
      
      





フォルダーを作成し、そこに新しいルートをラッチします。

 mkdir /mnt/gentoo mount /dev/ld1/root /mnt/gentoo
      
      





さらに、Gentoo.orgのマニュアルでは、ステージ3からGentooを置きます。これに焦点を当てず、コマンドのリストのみをリストします。

 cd /mnt/gentoo wget http://de-mirror.org/gentoo/releases/amd64/current-stage3/stage3-amd64-20111006.tar.bz2 tar –xvjpf stage3-amd64-20111006.tar.bz2 mount /dev/md0 boot mount –o bind /dev/ dev mount –t proc proc proc cp /etc/resolv.conf etc/ scp   make.conf etc/make.conf
      
      





私にとってはこのように見えます:

 CFLAGS="-O2 -pipe" CXXFLAGS="${CFLAGS}" CHOST="x86_64-pc-linux-gnu" MAKEOPTS="-j9" LINGUAS="ru" ACCEPT_KEYWORDS="~amd64" USE="-ipv6 mmx sse sse2 hvm qemu pygrub xen static-libs agent efiemu"
      
      





私たちは続けます:

 chroot /mnt/gentoo env-update && source /etc/profile emerge -–sync echo “=sys-fs/lvm2-2.02.88” >> /etc/portage/package.mask emerge gentoo-sources screen vim vixie-cron metalog reiserfsprogs mdadm lvm2 gentoolkit genkernel dhcp mdadm -–detail -–scan >> /etc/mdadm.conf ln –s /etc/init.d/net.lo /etc/init.d/net.eth0
      
      





raidおよびlvmのサポートを使用してカーネルを構成およびビルドします。genkernelを使用してビルドします。

fstabを編集します。

 /dev/md0 /boot reiserfs noatime 1 2 /dev/ld1/root / reiserfs noatime 0 1 /dev/ld1/swap none swap sw 0 0
      
      





passwdを介してrootパスワードを設定します。

サービス負荷をかける:

 rc-update add net.eth0 default rc-update add sshd default rc-update add metalog default rc-update add vixie-cron default
      
      





ここで最も興味深いのは、grubまたはむしろそのバージョン2を構成することです。

 echo "sys-boot/grub:2" >> /etc/portage/package.accept_keywords echo "sys-boot/grub:2" >> /etc/portage/package.unmask emerge -av sys-boot/grub:2
      
      





ディスクに無作法に書き込む必要があります。

 grub2-install /dev/sda grub2-install /dev/sdb
      
      





そして、それを設定するために、私はこのようにしました:

 grub2-mkconfig -o test.cfg
      
      





出力で、彼は私のためにtest.cfgを作成しました。

行を変更しました

 linux /kernel-genkernel-x86_64-3.0.6-gentoo root=/dev/mapper/ld1-root ro
      
      







 linux /kernel-genkernel-x86_64-3.0.6-gentoo root=/dev/ram0 real_root=/dev/ld1/root dolvm domdadm init=/linuxrc
      
      





そして、このファイルをブートにコピーしました:

 cp test.cfg /boot/grub2/grub.cfg
      
      





すべてが過負荷になる可能性があります。



xen自体をインストールして構成する

 emerge xen xen-tools –av
      
      





ネットワークをセットアップします。

 cat /etc/conf.d/net bridge_br0="eth0" rc_need_br0="net.eth0" config_eth0=("null") config_br0=( "xxxx/27" "192.168.194.1/24"     ) routes_br0=("default gw yyyy")
      
      





自動ロードするブリッジを追加します。

 ln –s /etc/init.d/net.lo /etc/init.d/net.br0 rc-update add net.br0 default
      
      





/etc/xen/xend-config.sxpファイルの行をコメントアウトします

 (network-script network-bridge)
      
      





Xenのスタートアップに追加:

 rc-update add xenstored default
      
      





次の行をfstabに追加します。

 none /proc/xen xenfs defaults 0 0
      
      





準仮想化サポートを有効にするためのカーネルの再構成:

 Processor type and features ---> [*] Paravirtualized guest support ---> [*] Xen guest support -*- Enable paravirtualization code [*] Paravirtualization layer for spinlocks
      
      





さらに、デバイスドライバーに移動します--->

そして、すべてのバックエンドを含めます:

 <*> Block-device backend driver <*> Xen backend network device
      
      





さらに、Xenドライバーのサポート--->

すべてのチェックマークをオンにします。 カーネルにコンパイルします。

genkernel経由でカーネルを再構築し、grub.cfgを修正します

 multiboot /xen.gz module /kernel-genkernel-x86_64-3.0.6-gentoo root=/dev/ram0 real_root=/dev/ld1/root dolvm domdadm init=/linuxrc module /initramfs-genkernel-x86_64-3.0.6-gentoo
      
      







私たちは過負荷であり、仮想マシンを作成できます。

構成例:

 cat /etc/xen/dp-rdp kernel = "/usr/lib/xen/boot/hvmloader" builder='hvm' vcpus=2 memory = 3400 shadow_memory = 8 name = "dp-rdp" vif = [ 'type=ioemu, bridge=br0, mac=00:16:3e:03:00:c5' ] disk = [ 'phy:/dev/ld1/dprdp,hda,w' , 'phy:/dev/ld1/dprdp_back,xvdb,w' , 'file:/root/Windows.x64.6in1.DVD-XiSO.iso,hdc:cdrom,r' ] device_model = '/usr/lib64/xen/bin/qemu-dm' boot="c" acpic=0 sdl=0 vnc=1 vncdisplay=1 vnclisten="0.0.0.0" vncpasswd='  ' stdvga=0 usb=0
      
      







仮想マシンは次のコマンドで起動します:

 xl create /etc/xen/dp-rdp
      
      







PSカーネルのチューニングに問題がある場合は、コメントに書き込み、完成した.configをどこかに投稿します。



All Articles