Proxmox – 移除 LXC 虛擬機器

1. 先確認 LXC 虛擬機器 Image 所在的位置
    如果是在 local-lvm 則要用第一種方法移除

  如果是 local 或其它的位置,則可以使用指令的方式移除

路徑的位置:
# ls -l
drwxr—– 2 root root 4096 Feb  2 13:32 100/
drwxr—– 2 root root 4096 Feb  2 15:34 101/
drwxr-xr-x 2 root root 4096 Feb  2 14:06 103/

# pwd
/var/lib/vz/images
[@more@]2.  要移除之前要先把虛擬機器關閉,再選擇右上方的 Remove

3. 輸入 LXC 編號,再選擇 Remove 即可!

4. 使用指令的方式移除(第二種方式)
# rm -rf /var/lib/vz/images/103
# rm -rf
/etc/pve/lxc/103.conf

5. 原本的 103 LXC 已經被移除

Proxmox – 複製 LXC 虛擬機器來使用

1. 切換目錄
# cd /VM/images

2. 列出目錄,其中
    100 是 CentOS 7 LXC
    101 是 Ubuntu 16.04 LXC
    102 是 FreeBSD kvm
# ls -l
drwxr—– 2 root root 4096 Feb  2 10:25 100/
drwxr—– 2 root root 4096 Feb  2 10:56 101/
drwxr—– 2 root root 4096 Feb  2 12:49 102/

[@more@]3. 建立目錄
# mkdir 103

4. 複製原 CentOS 7 LXC
# cp 100/vm-100-disk-1.raw 103/LXC-CentOS7-Test.raw

5. 複製設定檔
# cp /etc/pve/lxc/100.conf /etc/pve/lxc/103.conf

6. 修改設定檔 /etc/pve/lxc/103.conf
其中一定要修改的有 hostanme / hwaddr / rootfs
# cat /etc/pve/lxc/103.conf
arch: amd64
cores: 1
hostname: CentOS7-Test
memory: 512
net0: name=eth0,bridge=vmbr0,gw=192.168.131.2,hwaddr=DE:6F:EA:6B:9C:6B,ip=192.168.131.230/24,ip6=dhcp,type=veth
onboot: 1
ostype: centos
rootfs: VM:103/LXC-CentOS7-Test.raw,size=8G
swap: 512

7. 可以在前台找划新增的 LXC

Proxmox – 設定開機啟動虛擬機器

1. 選擇要在 Proxmox Server 啟動時就一併開機的虛擬機器,再選擇 Options

2. 預設值是 No,選擇 Edit

[@more@]3. 勾選 Start at boot,並選擇 OK

4. 預設值已經改成 Yes

5. 開機時一併會自動啟動

或直接修改設定檔,加入 onboot: 1 的設定
# cat /etc/pve/lxc/102.conf
arch: amd64
cores: 1
hostname: ArchLinux
memory: 512
nameserver: 168.95.1.1 140.111.66.1 8.8.8.8
net0: name=eth0,bridge=vmbr0,gw=192.168.1.254,hwaddr=C6:75:FF:9E:60:45,ip=192.168.1.8/24,ip6=dhcp,type=veth
onboot: 1
ostype: archlinux
rootfs: Seagate320G:102/vm-102-disk-1.raw,size=8G
searchdomain: ArchLinux
swap: 512

Proxmox – 安裝 Windows Virtio Driver

Proxmox Server KVM 安裝的 Windows 10,安裝完成後,裝置管理員中會有驚嘆號。
[@more@]1. 下載 Virtio Windows Driver
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

2. 上傳到 Proxmox Server

3. 修改光碟設定

4. 選擇 virtio-win.iso

5. 在裝置管理員中,按滑鼠右鍵,選擇 更新驅動程式軟體(P)

6. 選擇 瀏覽電腦上的驅動程式軟體(R)

7. 選擇 下一步(N)

8. 選擇 安裝(I)

9. 安裝完成!

Proxmox – 安裝 Windows 10 KVM

1. 選擇 Create VM

2. General 頁面設定

[@more@]3. OS 頁面設定,選擇要安裝的作業系統

4. CD/DVD 頁面設定,ISO 檔要先上傳到 Proxmox Server

5. Hard Disk 頁面設定,請選擇 SATA 介面

6. CPU 頁面設定

7. Memory 頁面設定

8. Network 頁面設定

9. Confirm 頁面確認設定

10. 在 VM 上按滑鼠右鍵,選擇 Start

11. 選擇 Console

12. 如果沒有偵測到硬碟可以安裝,就是前面 Hard Disk 頁面沒有選擇 SATA

13. 安裝完成!

Proxmox – 刪除內建的 LVM thin

個人比較習慣直接用指令來做備份及還原,對於 VM /LXC 能不能做 Snapshot,反而比較沒有那麼在意,當然有更好,二者衡量之下,我決定刪除內建的 LVM thin。
參考網頁:
gienginali – 線上書籍

1. 查看硬碟的分割狀態
# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data pve  twi-a-tz– 33.62g             0.00   0.46                          
  root pve  -wi-ao—- 14.75g                                                  
  swap pve  -wi-ao—-  4.00g

2. 移除 local-lvm
# lvremove /dev/pve/data
Do you really want to remove and DISCARD active logical volume data? [y/n]: y
  Logical volume “data” successfully removed[@more@]
3. 查看可用的 fee PE 空間
# vgdisplay pve
  — Volume group —
  VG Name               pve
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               59.75 GiB
  PE Size               4.00 MiB
  Total PE              15295
  Alloc PE / Size       4800 / 18.75 GiB
  Free  PE / Size       10495 / 41.00 GiB
  VG UUID               b6vroh-3y2j-dKV6-dtjp-Ezcv-vhwR-tziNwN

# vgdisplay pve | grep Free
  Free  PE / Size       10495 / 41.00 GiB

4. 建立新的 LVM
# lvcreate -l 10495 -n data pve
  Logical volume “data” created.

5. 格式化及掛載使用
# mkfs.ext4 /dev/pve/data
# mkdir /mnt/data
# mount /dev/pve/data /mnt/data

6. 查看掛載情形
# mount | grep pve-data
/dev/mapper/pve-data on /mnt/data type ext4 (rw,relatime,data=ordered)

7. 加入到 /etc/fstab
# blkid | grep pve-data
/dev/mapper/pve-data: UUID=”f4b9b237-f90e-4891-99ba-4f0a4328cb44″ TYPE=”ext4″

# cat /etc/fstab | grep data
UUID=f4b9b237-f90e-4891-99ba-4f0a4328cb44 /mnt/data ext4 defaults 0 1

Proxmox – Ununtu 16.04 LXC 初始環境設定

1. 將更新的 Server 都指向國家高速網路中心
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.$(date +%F)
$ sudo sed -i ‘s/archive.ubuntu.com/free.nchc.org.tw/g’ /etc/apt/sources.list
 
清除所有的
$ sudo apt-get clean all
更新套件庫
$ sudo apt-get update[@more@]2. 進行更套更新
$ sudo apt-get upgrade

3. 補足缺少的套件
$ sudo apt-get install vim zip unzip mailutils ntpdate

4. 讓終端機程式可以輸入及顯示中文
$ sudo locale-gen en_US.UTF-8
$ sudo update-locale LANG=en_US.UTF-8
$ sudo update-locale LANGUAGE=en_US.UTF-8

5. 時區及預設編輯器設定
$ sudo tail -2 /etc/profile
export TZ=”Asia/Taipei”
export EDITOR=”/usr/bin/vim”

6.安裝 Apache Web Server
$ sudo apt-get install apache2
$ sudo systemctl enable apache2.service
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable apache2
$ systemctl start apache2.service

7. 安裝 MariaDB SQL Server
$ sudo apt install mariadb-server
$ sudo systemctl enable mysql
$ sudo systemctl start mysql
$ sudo /usr/bin/mysql_secure_installation

8. 安裝 PHP7
$ sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-bz2 php7.0-mbstring php7.0-zip
$ sudo systemctl restart apache2.service

設定檔
MSQL
/etc/mysql/mysql.conf.d/mysqld.cnf
Apache
/etc/apache2/conf-available/security.conf
PHP
/etc/php/7.0/apache2/php.ini

9. 安裝 snmpd
$ sudo apt-get install snmpd snmp
$ sudo echo ‘rocommunity public’ > /etc/snmp/snmpd.conf
$ sudo  chmod 600 /etc/snmp/snmpd.conf
$ sudo systemctl enable snmpd.service
$ sudo systemctl start snmpd.service

Proxmox – CentOS 7 LXC 初始環境設定

1. 安裝 OpenSSH Server
# yum install openssh-server

設定開機時啟動 OpenSSH Server
# systemctl enable sshd.service

啟動 OpenSSH Server
# systemctl start sshd.service[@more@]2. 修改套件更新來源
# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.$(date +%F)

將 mirrorlist 那一行的前面加上 # 註解
 # sed -i ‘s,mirrorlist=http://mirrorlist.centos.org,#mirrorlist=http://mirrorlist.centos.org,’ /etc/yum.repos.d/CentOS-Base.repo
把 #baseurl 前面的 # 去除
# sed -i ‘s,#baseurl=http://mirror.centos.org,baseurl=http://mirror.centos.org,’ /etc/yum.repos.d/CentOS-Base.repo
http://mirror.centos.org/centos/ 替換成 ftp://140.111.74.109/CentOS/
# sed -i ‘s,http://mirror.centos.org/centos/,ftp://140.111.74.109/CentOS/,’ /etc/yum.repos.d/CentOS-Base.repo
安裝 EPEL 套件庫
# yum install epel-release
去除舊的 yum cache
# yum clean all
開始進行更新
# yum update

3.補足缺少的套件
# yum install which vim nano yum-utils net-tools bind-utils mlocate zip unzip wget iptables-services ntpdate net-snmp net-snmp-utils bzip2 lsof less
# yum install fail2ban ssmtp logwatch cronie

# systemctl enable fail2ban.service
# systemctl start fail2ban.service

4. 設定時區及預設編輯器
# tail -2 /etc/profile
export EDITOR=”/usr/bin/vim”
export TZ=”Asia/Taipei”

5. 安裝 LAMP
# yum install httpd mariadb mariadb-server php php-mysql php-gd php-pear php-xml php-xmlrpc php-mbstring php-soap
php-bcmath php-dba php-embedded php-enchant php-fpm php-intl php-mysqlnd php-odbc php-pspell php-recode php-soap php-xmlrpc rrdtool-php uuid-php php-pecl-memcache

6. 設定開機時啟動
# systemctl enable httpd.service
# systemctl enable mariadb.service
# systemctl start httpd.service
# systemctl start mariadb.service

7. 設定 MariaDB SQL Server
# /usr/bin/mysql_secure_installation

Proxmox – 解決安裝在 VM 中的 Proxmox 無法啟動 KVM

如果純粹是為了測試 Proxmox,而把 Proxmox 安裝在 VM 中,在啟動 KVM 會出現 Error: No accelerator found! 的警告訊息,而無法正常啟動 KVM。
下方的 Tasks

出現的警告訊息

[@more@]解決方式:
1. 選擇 KVM 虛擬機器 / Options / KVM hardware virtualization

2. 預設值是 Yes

3. 把預設值取消

4. KVM hardware virtualization 的預設值就改成 No

5. 可以進行安裝了!

不過,這種執行速度會非常緩慢,因為是採用「全模擬」的方式來模擬,所以執行效率相對地非常慢。

Proxmox – 變更 LXC 虛擬機器網路設定

新增 LXC 虛擬機器時的網路設定

[@more@]建立完成之後,如果要修改網路設定,並不是在 LXC 虛擬機器中設定,
如:
Ubuntu Linux:
/etc/network/interfaces
CentOS Linux:
/etc/sysconfig/network-scripts/ifcfg-eth0

而是在
選擇 LXC 虛擬機器 / Network / net0 / Edit 中做設定

進行修改

或直接修改設定檔 /etc/pve/lxc/102.conf
固定 IP
# cat /etc/pve/lxc/102.conf
arch: amd64
cores: 1
hostname: Ubuntu1604
memory: 512
net0: name=eth0,bridge=vmbr0,gw=192.168.1.254,hwaddr=9E:5B:BC:13:35:A7,ip=192.168.1.228/24,ip6=dhcp,type=veth
ostype: ubuntu
parent: OK
rootfs: local-lvm:vm-102-disk-1,size=15G
swap: 512

DHCP 取得 IP
# cat /etc/pve/lxc/102.conf
arch: amd64
cores: 1
hostname: Ubuntu1604
memory: 512
net0: name=eth0,bridge=vmbr0,hwaddr=
9E:5B:BC:13:35:A7,ip=dhcp,ip6=dhcp,type=veth
ostype: ubuntu
rootfs: VM:102/vm-102-disk-1.raw,size=15G
swap: 512