Skip to content
/ marmot Public

検証、実験、そして学習のための、簡便で高速な仮想サーバーの実行環境

License

Notifications You must be signed in to change notification settings

takara9/marmot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

仮想サーバーの管理システム marmot

検証、実験、そして学習のための、簡便で高速な仮想サーバーの実行環境であり、以下の特徴があります。

  • 6コア程度の低スペックデスクトップPCなどにインストールして、仮想サーバーを複数起動できる
  • 仮想サーバーの起動は、Dockerコンテナを起動するのと同じくらいの高速起動を実現
  • YAMLファイルで仮想サーバーの構成を定義
  • Ubuntu 20.04 以上で動作
  • ゲストVMとして、Ubuntu 20.04, 22.04
  • 複数のPCをクラスタ化して、プライベートなクラウド環境を構築
  • Ansible playbookに適した仮想マシン

アーキテクチャ

mactlコマンドに、仮想マシンのクラスタ構成 YAML を添えて実行することで、仮想マシンが起動します。クラスタは、1サーバーから、リソースのあるだけ起動できます。

Architecture

複数のmarmotを導入したサーバーを並列化して、クラウドの様な環境を構築できます。

Architecture

使用例

構成ファイル cluster-config.yaml を準備します。

domain: labo.local
os_variant:  ubuntu22.04
cluster_name: test
vm_spec:
  - name: "srv1"
    cpu: 1
    memory: 1024
    private_ip: "172.16.9.11"
    storage:
    - name: data
      size: 10
      vg:   vg2
    comment: "test node #1"
  - name: "srv2"
    cpu: 1
    memory: 1024
    private_ip: "172.16.9.12"
    storage:
    - name: data
      size: 10
      vg:   vg2
    comment: "test node #2"

構成ファイルが存在するディレクトリで、'mactl create'を実行することで、サーバーがデプロイされます。 起動まで、約30秒程度です。

ubuntu@hv0:~/marmot-apl$ mactl create
成功終了
ubuntu@hv0:~/marmot-apl$ mactl status
CLUSTER    VM-NAME          H-Visr STAT  VKEY                 VCPU  RAM    PubIP           PriIP           DATA STORAGE        
test       srv1             hv0    RUN   vm_srv1_0110         1     1024   172.16.9.11                     10  
test       srv2             hv0    RUN   vm_srv2_0111         1     1024   172.16.9.12                     10  

あとは、ログインして、追加の設定を実施できます。

ubuntu@hv0:~/marmot-apl$ ssh ubuntu@srv1.test.a.labo.local
Warning: Permanently added 'srv1.test.a.labo.local' (ED25519) to the list of known hosts.
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-86-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

サーバーは、Ansibleを利用して、セットアップもできます。

ubuntu@hv0:~/marmot-apl$ ansible -i inventory all -m ping
srv1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
srv2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

セットアップ方法

CoreDNS,etcd,Open vSwitch,LVM,KVM などのインストールと設定の後、以下の要領で、起動することができます。インストールなどのドキュメントは順次拡充していきます。

事前準備

作成中

marmotのインストール

TAG=v0.8.2
mkdir marmot
cd marmot
curl -OL https://github.com/takara9/marmot/releases/download/$TAG/marmot-$TAG.tgz
tar zvf marmot-$TAG.tgz
sudo ./install.sh

応用例

Kubernetesクラスタの実行

作成中

Cephストレージシステムの実行

作成中

メトリックスとログ分析基盤

作成中

About

検証、実験、そして学習のための、簡便で高速な仮想サーバーの実行環境

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages