Linux 上で仮想化環境を構成および管理する方法

WBOY
リリース: 2023-11-08 20:55:58
オリジナル
985 人が閲覧しました

Linux 上で仮想化環境を構成および管理する方法

Linux で仮想化環境を構成および管理する方法

仮想化技術は、ハードウェア リソースに基づいてセグメント化して利用する方法であり、物理サーバーを分割することができます。それを複数の独立した仮想マシン インスタンスに分割して、サーバー リソースの使用率と柔軟性を向上させます。 Linux システムは、一連の強力な仮想化ツールと管理メカニズムを提供します。この記事では、Linux 上で仮想化環境を構成および管理する方法と、具体的なコード例を紹介します。

1. 仮想化プラットフォームの構成
まず、適切な仮想化プラットフォームを選択する必要があります。 Linux では、KVM、Xen、VirtualBox などの一般的な仮想化プラットフォームを選択できます。ここでは、KVM を例として説明します。

  1. KVM のインストール
    Ubuntu システムでは、次のコマンドを使用して KVM をインストールできます:
    $ sudo apt install qemu-kvm libvirt-bin virt-manager
  2. 仮想ネットワークの作成
    仮想ネットワークを作成すると、仮想マシンが相互に通信し、ホストに接続できるようになります。次のコマンドを使用して仮想ネットワークを作成できます。
    $ sudo virsh net-define network.xml
    $ sudo virsh net-start network
  3. 仮想マシンの作成
    virt を使用します。 -install コマンドで仮想ネットワーク マシンを作成します。例:
    $ sudo virt-install --name myvm --ram 2048 --vcpu 2 --disk path=/var/lib/libvirt/images/myvm.img ,size=10 --network network=default --graphics vnc,port=5901 --os-type=linux --os-variant=ubuntutrusty --cdrom=/path/to/ubuntu.iso

2. 仮想化環境の管理
仮想化環境では、管理にコマンド ライン ツールまたはグラフィカル インターフェイス ツールを使用できます。

  1. コマンド ライン管理
    virsh コマンドを使用して、仮想マシン上で作成、削除、開始、停止などの操作を行います。一般的に使用されるコマンドの例は次のとおりです。
  2. 仮想マシンの作成:
    $ sudo virt-install --name myvm --ram 2048 --vcpu 2 --disk path=/var/lib/libvirt /images /myvm.img,size=10 --network network=default --graphics vnc,port=5901 --os-type=linux --os-variant=ubuntutrusty --cdrom=/path/to/ubuntu.iso
  • 仮想マシンを削除します:
    $ sudo virsh destroy myvm
    $ sudo virsh undefine myvm
  • 仮想マシンを起動します:
    $ sudo virsh start myvm
  • 仮想マシンを停止します:
    $ sudo virsh shutdown myvm
  • 仮想マシンのリストを表示します:
    $ sudo virsh list
    #グラフィカル インターフェイス管理
  1. Linux システムには、仮想マシンを簡単に管理できる virt-manager グラフィカル インターフェイス ツールが用意されています。次のコマンドを使用して virt-manager をインストールできます。
    $ sudo apt install virt-manager
virt-manager を開くと、作成された仮想マシンのリストが表示され、簡単にインストールできます。インターフェイス操作を通じて変更する 仮想マシンは管理および監視されます。

3. コード例

次は、Python 言語で書かれた簡単な仮想マシン管理スクリプトの例です:

import libvirt

# 连接到本地的libvirt守护进程
conn = libvirt.open()

# 创建虚拟机
def create_vm(name, ram, vcpu, disk_path, network, graphics):
    xml = '''
    <domain type='kvm'>
      <name>{}</name>
      <memory unit='KiB'>{}</memory>
      <vcpu placement='static'>{}</vcpu>
      <os>
        <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
        <boot dev='hd'/>
      </os>
      <devices>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='{}'/>
          <target dev='vda' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
        </disk>
        <interface type='network'>
          <mac address='52:54:00:6f:65:94'/>
          <source network='{}'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>
        <graphics type='vnc' port='{}' autoport='no' listen='0.0.0.0'/>
      </devices>
    </domain>
    '''.format(name, ram, vcpu, disk_path, network, graphics)

    conn.createXML(xml, 0)

# 删除虚拟机
def delete_vm(name):
    dom = conn.lookupByName(name)
    dom.destroy()
    dom.undefine()

# 启动虚拟机
def start_vm(name):
    dom = conn.lookupByName(name)
    dom.create()

# 停止虚拟机
def stop_vm(name):
    dom = conn.lookupByName(name)
    dom.shutdown()

# 查看虚拟机列表
def list_vms():
    vms = conn.listDomainsID()
    for vm in vms:
        dom = conn.lookupByID(vm)
        print("Name: {}, ID: {}, State: {}".format(dom.name(), dom.ID(), dom.state()))

# 示例用法
create_vm('myvm', 2048, 2, '/var/lib/libvirt/images/myvm.img', 'default', '5901')
start_vm('myvm')
list_vms()
delete_vm('myvm')
ログイン後にコピー

この例では、libvirt ライブラリを使用してローカルのlibvirt デーモン プロセスは、仮想マシンの作成、削除、起動、停止、仮想マシン リストの表示など、いくつかの簡単な管理操作を提供します。

実際の運用では、ネットワーク設定、ディスク管理、パフォーマンス監視など、ニーズに応じて仮想化環境をさらに構成および管理できます。

概要

この記事では、Linux 上で仮想化環境を構成および管理する方法を簡単に紹介し、具体的なコード例を示します。仮想化テクノロジーは、サーバー リソースの効率的な利用を促進し、アプリケーションの導入と管理に柔軟性と拡張性をもたらします。この記事が、Linux 上の仮想化環境の構成と管理について読者にインスピレーションを与え、役立つことを願っています。

以上がLinux 上で仮想化環境を構成および管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!