服务器配置lxc管理
前言
由于之前的服务器被我搞坏了所以要重新开始配置服务器lxc管理
一、分区
1.创建分区
目的:划分出3T的分区来挂载lxc
查看磁盘
sudo fdisk -l
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
这一块3.7T的就是要进行分区操作的盘,然后由于默认是mbr格式,无法通过fdisk划分2T以上的分区,因此用parted工具将mbr转化为gpt
sudo parted /dev/sda #进入parted
mklabel gpt #将磁盘设置为gpt格式
mkpart logical 0 -1 #将磁盘所有的容量设置为GPT格式,这里会格式化丢失原先文件,请慎重
print #查看分区结果
这个时候应该是默认进行分了一个/dev/sda1这个分区,这个分区包含了整个磁盘大小,不是我们想要的3T,因此要删除重新配置
rm 1 #删除编号为1的分区
unit GB #改变默认单位GB
mkpart #进入创立分区交互指令
Partition name? []? pv1
File system type? [ext2]? zfs
Start? 0
End? 3072GB
print #分区完成后打印出来看一下结果
Model: ATA HGST HUS726T4TAL (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3072GB 3072GB zfs pv1
在parted中完成了分区,然后通过fdisk验证一下
sudo fdisk -l
Device Start End Sectors Size Type
/dev/sda1 2048 6000001023 5999998976 2.8T Linux filesystem
fdisk中也可以看到对应的分区结果,至此完成了分区。
2.格式化分区
将刚刚分出来的sda1格式化为ext4的格式
sudo mkfs -t ext4 /dev/sda1
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 749999872 4k blocks and 187506688 inodes
Filesystem UUID: a66ff254-e95f-4981-921e-a090e7aff4a1
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
c
查看硬盘/dev/sda1 对应的UUID
sudo blkid
注意: 唯一的sda1的UUID号。再事先准备好一个地方来做挂载点,比如我这里是/data1然后再用命令打开配置文件:
sudo vim /etc/fstab
然后在文件末尾添加
UUID=a66ff254-e95f-4981-921e-a090e7aff4a1 /data1 ext4 defaults 0 0
重启
df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 65774384 0 65774384 0% /dev
tmpfs 13166396 10880 13155516 1% /run
/dev/sdb2 921923300 46802332 828220132 6% /
tmpfs 65831968 0 65831968 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 65831968 0 65831968 0% /sys/fs/cgroup
/dev/loop0 113536 113536 0 100% /snap/core/12725
tmpfs 13166392 0 13166392 0% /run/user/1000
/dev/sda1 2951859536 90140 2801753040 1% /data1
可以看到/dev/sda1已经成功挂载到了/data1下。证明了开机自动挂载完成。最后再测验一下卸载和挂载功能
sudo umount -l /dev/sda1
df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 65774384 0 65774384 0% /dev
tmpfs 13166396 10880 13155516 1% /run
/dev/sdb2 921923300 46802332 828220132 6% /
tmpfs 65831968 0 65831968 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 65831968 0 65831968 0% /sys/fs/cgroup
/dev/loop0 113536 113536 0 100% /snap/core/12725
tmpfs 13166392 0 13166392 0% /run/user/1000
没有找到/dev/sda1,卸载成功
sudo mount /dev/sda1 /data1
df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 65774384 0 65774384 0% /dev
tmpfs 13166396 10880 13155516 1% /run
/dev/sdb2 921923300 46802332 828220132 6% /
tmpfs 65831968 0 65831968 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 65831968 0 65831968 0% /sys/fs/cgroup
/dev/loop0 113536 113536 0 100% /snap/core/12725
tmpfs 13166392 0 13166392 0% /run/user/1000
/dev/sda1 2951859536 90140 2801753040 1% /data1
又重新挂载上了,至此分区工作完成。
二、lxd
1.安装
lxd是lxc的升级版,安装包名为lxd,命令仍然沿用lxc。
lxd的安装方式有两种,apt和snap,下面列举了两者的差异。
apt比较熟悉,刚开始想通过apt安装,但是安装过程中一直提示连接不上snap导致无法安装。由此推断apt也是封装snap命令进行安装lxd,所以直接采用snap进行安装,并且选用推荐的4.x版本。
sudo snap install lxd
安装完成后可以通过snap version看到对应的版本信息
ssme@ssme-server:~$ snap version
snap 2.54.3.2
snapd 2.54.3.2
series 16
ubuntu 20.04
kernel 5.4.0-100-generic
当然过程中不一定是一帆风顺的,我遇到过两个问题。
第一次提示我
connect: connection refused
这是网络连接问题,查看网络是否可用,我通过设置代理解决了
第二此提示我
read: connection reset by peer
字面意思是连接被同行重置,理解一下就是网络配置被修改了。我因为修改过代理,并且是通过export http设置,vim ~/.bashrc以及snap自带的vim /etc/environment 等三种方式修改了代理,虽然代理是同一个ip,但是经过无数次的失败后,最后尝试将之前的修改的代理只保留一个。
- export proxy可以通过重启或者export http_proxy="",设置为空来清除
- ~/.bashrc 保留
- /etc/environment 删除proxy配置信息
然后重新尝试安装,发现安装完成,坑爹啊!就算是完成了,我依然感觉这是个bug。
2.初始化
首先把之前挂载的分区拿下来,这里不需要挂,lxc有一套自己的挂载方式
umount /dev/sda1
在块设备 /dev/sda1 上创建一个ZFS存储池
sudo lxc storage create zfs-pool zfs source=/dev/sda1
创建成功后查看一下,因为没有配置占用空间,所以默认占用全部大约2.7T
ssme@ssme-server:~$ sudo lxc storage info zfs-pool
info:
description: ""
driver: zfs
name: zfs-pool
space used: 1.56MiB
total space: 2.69TiB
lxd初始化,第二轮互动询问是否要创建资源池,这里我们通过指定分区创建资源池了,所以不需要默认创建(如果默认创建的话就会挂载到别的分区去)
ssme@ssme-server:~$ sudo lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]: no
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
The requested network bridge "lxdbr0" already exists. Please choose another name.
What should the new bridge be called? [default=lxdbr0]: lxdbr0
The requested network bridge "lxdbr0" already exists. Please choose another name.
What should the new bridge be called? [default=lxdbr0]: lxdbb1
What IPv4 address should be used?