本地使用qemu+libvirt來管理映象
1. 如何使用命令列啟動虛擬機器:
1.0 host環境配置
# centos5u7,安裝以下依賴包
sudo yum -y install kvm kmod-kvm kvm-qemu-img libvirt python-virtinst bridge-utils
1.1 修改virt network配置,如下是具體方法(非必須的):
這一步非必須的,如果省略的話,需要使用命令virsh console vm-name
來檢視vm-name的ip地址。
下面是自己定義的default network的配置檔案default.xml,為固定的mac地址指定ip:
<network >
<name>default</name>
<uuid>dc69ff61-6445-4376-b940-8714a3922bf7</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0' />
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254' />
<host mac='52:54:00:4a:1e:d3' name='guest1' ip='192.168.122.3' />
<host mac='00:25:90:eb:34:2c' name='guest2' ip='192.168.122.4' />
</dhcp>
</ip>
</network>
執行命令生效:
# 停止
sudo virsh net-destroy default
# 使用default.xml建立default net
sudo virsh net-define default .xml
# 啟動default net
sudo virsh net-start default
1.2 配置qemu-kvm
配置檔案kvm-1.xml
<domain type='kvm'>
<name>kvm-1</name>
<uuid>894396a2-4319-5171-f4dc-18a33ba080a3</uuid>
<memory>33554432</memory>
<currentMemory>33554432</currentMemory>
<vcpu>8</vcpu>
<os>
<type arch='x86_64' machine='rhel5.6.0'>hvm</type>
<boot dev='hd'/>
<boot dev='cdrom'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'>
<timer name='pit' tickpolicy='delay'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/trusty-server-cloudimg-amd64-disk1-ubuntu.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/sdc1'/>
<target dev='vdb' bus='virtio'/>
</disk>
<controller type='ide' index='0'/>
<controller type='virtio-serial' index='0'/>
<interface type='network'>
<mac address='52:54:00:4a:1e:d3'/>
<source network='default'/>
<model type='virtio'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
</devices>
</domain>
說明:
CPU: 8vCPUs
Mem: 32GiB
hvm: 全虛擬化
使用qcow2來作為根分割槽
network: 設定網絡卡地址為52:54:00:4a:1e:d3,對映方式為NAT
根分割槽vda:trusty-server-cloudimg-amd64-disk1-ubuntu.qcow2
資料分割槽vdb:host磁碟/dev/sdc1
1.3 啟動虛擬機器
# 1. 轉換映象格式
sudo qemu-img convert -f raw -O qcow2 trusty-server-cloudimg-amd64-disk1.img trusty-server-cloudimg-amd64-disk1-ubuntu.qcow2
# 2. 定義域kvm-1
sudo virsh define kvm-1.xml
# 啟動kvm-1,如果啟動正常,預設的ip地址為192.168.122.3,因為在default 網路配置中指定了靜態ip
# 3. 啟動虛擬機器kvm-1
sudo virsh start kvm-1
2. 虛擬機器管理
2.1 ssh連線
ssh [email protected]192.168.122.3
密碼是ubuntu
# 掛載host磁碟到虛機
vim /etc/fstab,新增如下行:
/dev/vdb /mnt ext4 defaults 0 0
儲存退出,執行
mount -a
2.2 命令列virsh管理
# 使用virsh命令給domain kvm-1新增快照,其中name和說明在snapshot.xml中描述
sudo virsh snapshot-create kvm-1 snapshot.xml
# 關閉虛擬機器 kvm-1
sudo virsh shutdown kvm-1
snapshot.xml檔案:
<domainsnapshot>
<name>ubuntu-python2.7.12</name>
<description>upgrade to python2.7.12, mount disk </description>
</domainsnapshot>
3. 其他
- 虛擬機器中安裝http服務,如何在物理機中配置埠轉發
# ubuntu安裝httpd伺服器
sudo apt install apache2
# 修改預設的/var/www/html為/mnt/www/html
vim /etc/apache2/sites-available/000-default.conf
...
DocumentRoot /mnt/www/html
...
<Directory "/mnt/www/html">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
...
# 重啟httpd
apache2ctl -k restart
# 將物理機ip:80轉發到虛機192.168.122.3:80
sudo iptables -t nat -I PREROUTING -p tcp -d ip --dport 80 -j DNAT --to-destination 192.168.122.3:80
sudo iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
# 檢視iptables nat表
sudo iptables -t nat -L
# 刪除nat表的PREROUTING第一條規則
sudo iptables -t nat -D PREROUTING 1
- ssh: permission denied (publickey)
原因:
/etc/ssh/sshd_config中將密碼認證設定為no,設定為yes重啟ssh服務即可
PasswordAuthentication yes
相關推薦
本地使用qemu+libvirt來管理映象
1. 如何使用命令列啟動虛擬機器: 1.0 host環境配置 # centos5u7,安裝以下依賴包 sudo yum -y install kvm kmod-kvm kvm-qemu-img libvirt python-virtinst brid
使用Kubernetes V1來管理Docker的擴展
docker kubernetes 楊文 Kubernetes是一款開源的項目,管理Linux容器集群,並可將集群作為一個單一的系統來對待。其可跨多主機來管理和運行Docker容器、提供容器的定位、服務發現以及復制控制。它由Google發起,現在則得到如微軟、紅帽、IBM和Docker等眾多廠商的
使用requirejs來管理angularJS依賴示例
path string plain ins clas fun ont async light 有關requirejs是什麽在這裏不做解釋,只用純代碼實戰讓你感受requirejs依賴管理的強大。 一、首先要先下載require.js,然後整一個入口文件main.js包括了
KVM+Qemu+Libvirt實戰
等等 eboot blog 輸入 splay 終端 服務 內存 1-1 上一篇的文章是為了給這一篇文件提供理論的基礎,在這篇文章中我將帶大家一起來實現在linux中虛擬出ubuntu的server版來 我們需要用KVM+Qemu+Libvirt來進行kvm全虛擬化,創建虛
使用普通用戶替代root來管理IEE
ren rwx chown socket 查看 pts oca local 0.00 環境:RHEL 6.4 + IEE 4.0.6需求:IEE數據庫之前是使用root用戶部署和管理的,現在安全加固,將數據庫交給普通用戶iee來管理。 一、當前環境二、安全加固 1.創建i
linux 使用supervisor來管理進程
http open etc neu 項目 客戶 日誌輸出 con 什麽 現在假設一個腳本是,hello.py,內容是 fo = open(‘xx.txt‘,‘w‘) while 1: fo.write(‘hello world‘) print(
gunicorn、nginx部署flask項目,並用supervisor來管理進程
開發 log 練習 修改 後端 block mar com .com 本科的時候做公眾號,開始提供學生教務查詢服務,後端從PHP轉到Python,無論是使用django還是flask,部署都沒PHP那麽方便,每次修改程序完,都是ps ax,然後再kill,再run。emm
Docker使用 Supervisor 來管理進程
控制 rip div post 我們 config 很多 -a 腳本 Docker 容器在啟動的時候開啟單個進程,比如,一個 ssh 或者 apache 的 daemon 服務。但我們經常需要在一個機器上開啟多個服務,這可以有很多方法,最簡單的就是把多個啟動命令放到一個
git 在windows下的應用(一) - 本地倉庫代碼管理
軟件研發 研發管理 訪問https://gitforwindows.org/? 下載一個安裝包,一路next下去git config --global user.name "Pcdog" git config --global user.email "[email protected]"cd d:
利用SCVMM 2012 R2來管理Azure虛擬機
azure下面我們就來看一看如何通過SCVMM 2012 R2來添加和管理Azure訂閱的。首先,利用makecert創建一個自簽名證書,參照下圖命令執行,該證書用於上傳到Azure上以便VMM進行管理,需要註意Azure的管理證書必須是2048位密鑰長度,並應用於"個人"證書存儲中。關於
Spring Boot中使用Flyway來管理數據庫版本
con 數據庫更新 多人 test 修改 utf8 number jdbc ima flyway是一個開源的數據庫遷移工具。類似於數據庫的版本控制工具。flyway的數據庫修改文件默認放在resource下的db.migration文件夾中,以V{version_num
11g rac grid用戶來管理監聽程序
adapter listen tin copy nts ali message error: proto Oracle 11g RAC 數據庫監聽默認都是grid用戶通過集群工具來進行管理的,但是有些時候我們會發現數據庫監聽程序有oracle用戶啟動的,這裏就存在一些問題。
MyEclipse 2017 CI 中使用 Java Working Set 來管理項目
白色 點擊 如果 工作空間 workspace 彈出 sel lips 顯示 MyEclipse 2017 CI 作為一款流行的JavaIDE開發工具,其有很多好用的功能為我們的開發提供幫助。但我們的工作空間中有很多項目時,管理起來就很頭疼了。 但是我們又不想更換工作區
qemu內存管理
sub for oca api linux nio 不同的應用 指定 內存結構 1 Qemu內存分布2 內存初始化Qemu中的內存模型,簡單來說就是Qemu申請用戶態內存並進行管理,並將該部分申請的內存註冊到對應的加速器(如KVM)中。這樣的模型有如下好處: 策略
Docker搭建本地倉庫並推送映象到本地倉庫
Dockers不僅提供了一箇中央倉庫,同時也允許我們使用registry搭建本地私有倉庫; 一、本地下載registry sudo docker pull registry:2 二、啟動容器執行registry映象 docker run -d -p 5000:5000 -v /
draft.js:不要使用redux來管理editorState
很多業務的實現都對 執行順序 有要求 即 確保editorState更新完畢,元件渲染完成 用setState的回撥函式可以確保執行順序: 先更新,再執行 而redux不能保證更新與執行的先後順序 比如,用redux管理editorState的情況下, ... dispatc
Django URLconfs 中通過包含其他URLconfs 來管理部分url相同的url
第一種情況:一個專案下每個相同app下的每個url有相同的字首,為了方便管理把各自的不同url部分交給各自的URLconfs管理。 在任何時候,你的urlpatterns 都可以包含其它URLconf 模組。這實際上將一部分URL 放置於其它URLconfs 下面。 from dj
phpmyadmin是很多網站用來管理數據庫的一個系統,尤其是mysql數據庫管理的較多一些,最近p
修復 ces lin centos log 需要 地址 shel 多少 phpmyadmin是很多網站用來管理數據庫的一個系統,尤其是mysql數據庫管理的較多一些,最近phpmysql爆出漏洞,尤其是弱口令,sql註入漏洞,都會導致mysql的數據賬號密碼被泄露,那麽如何
Linux自帶的logrotate 來管理日誌
起因:nginx日誌以及服務日誌竟然高達57G 大家可能都有管理日誌的需要,比如定時壓縮日誌,或者當日志超過一定大小時就自動分裂成兩個檔案等,我發現其實Linux自帶的logrotate命令就能夠實現這樣的功能。 為了使用它,主要有兩個地方需要修改一下:一個是/etc/logrotate.
使用immutable.js來管理store中的資料
安裝: yarn add immutable 將state變為immutable物件,以防止state被改變 import { fromJs } from 'immutable' fromJs 方法可以把一個js物件轉化為一個immutable物件; 利用這個方法把state