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をどこかに投稿します。

Source: https://habr.com/ru/post/J131196/


All Articles