基于Ubuntu-20.04.1实现Linux无盘工作站

2020-09-23  本文已影响0人  往后余生9375

什么是无盘工作站

无盘工作站的原理就是在网内有一个系统服务器,这台系统服务器上除了有它本身运行所需的操作系统外还需要有一个工作站运行所需的操作系统。无盘工作站的机箱中没有硬盘,其它硬件都有(如主板、内存等),而且无盘工作站的网卡必须带有可引导芯片(一般网卡没有,可引导芯片可以买到)。在无盘工作站启动时网卡上的可引导芯片从系统服务器中取回所需数据供用户使用。 简单点一句话就是,无盘工作站其实就是把硬盘和主机分离,无盘工作站只执行操作不执行存储。故不会改变文件。

目的

想象一下你的办公室内有30台电脑,每一台都需要使用相同的应用程序。如果你作为管理这些电脑的管理员,你会怎么做?如果你在每一台电脑上安装应用程序,那只是在浪费你的时间。另一方面来说,一套无盘系统就能解决你的问题。有了一套无盘系统,你只需在中央NFS服务器上安装需要的程序,然后通过网络启动这30台客户机即可。

准备

`安装Ubuntu到VMware Workstation 14。名称就叫Ubuntu无盘系统服务器


image.png

安装完毕,准备工作已完成,下面开始搭建无盘服务器

局域网架构

image.png

PXE执行流程

image.png

服务器所需工作

在这个指导教程中,我假设作为启动服务器的电脑运行的是 Ubuntu。如何你正在使用其它的Linux发行版,原理是一样的。

第一步:安装软件包

sudo apt-get install isc-dhcp-server tftpd-hpa nfs-kernel-server initramfs-tools

第二步:配置TFTP服务器

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot/"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
/var/lib/tftpboot
sudo vi /tftpboot/pxelinux.cfg/default

写入内容

default Ubuntu
LABEL Ubuntu
prompt 0
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img nfsroot=192.168.31.78:/nfsroot ip=dhcp rw

重启TFTPD服务

sudo /etc/init.d/tftpd-hpa restart

第三步:配置DHCP服务

你还需要在NFS服务器上配置DHCP服务来允许使用/var/lib/tftpboot/pxelinux.0启动。假设你在使用192.168.31.0作为子网,你的配置可能看起来像下面这样子。

编辑/etc/default/isc-dhcp-server.conf配置网卡信息

编辑/etc/dhcp/dhcpd.conf添加以下配置

subnet 192.168.31.0 netmask 255.255.255.0 {
    range 192.168.31.100 192.168.31.254;
    option broadcast-address 192.168.31.255;
    option routers 192.168.31.1;
    filename "/pxelinux.0";
}

这里特别提醒一句,如果要将子网掩码设置为255.255.0.0那么subnet一定要设置为192.168.0.0与之对应,否则将会报错。broadcast-address就是最大ip地址192.168.255.255 ,routers就是网关IP,根据路由器配置。
option domain-name-servers 这里设置为当前服务器的IP;

重启DHCPD服务

sudo service isc-dhcp-server restart

第四步:配置NFS服务器

sudo mkdir /nfsroot

接着,设置NFS服务器导出客户机根文件系统。向/etc/exports添加以下行来实现。

/nfsroot             *(rw,no_root_squash,async,insecure,no_subtree_check)

刷新

$ sudo exportfs -rv

默认情况下,Ubuntu在initrd镜像中不提供网络启动支持。因此你需要创建一个新的initrd.img文件。首先添加下列行到/etc/initramfs-tools/initramfs.conf中。

BOOT=nfs
MODULES=netboot

然后运行下列命令来创建一个新的initrd.img。

sudo mkinitramfs -o /var/lib/tftpboot/initrd.img

将新的内核镜像文件复制到/var/lib/tftpboot中。

sudo cp /boot/vmlinuz-`uname -r` /var/lib/tftpboot/vmlinuz

制作工作站系统,我们使用工具将镜像复制到nfsroot目录作为工作站客户端挂载的镜像

rsync -av --exclude='/proc' --exclude='/lost+found' --exclude='/tftpboot' --exclude='/mnt' --exclude='/sys' --exclude='/media' --exclude='/nfsroot' /* /nfsroot

进入/nfsroot不全目录

mkdir proc
 mkdir lost+found
 mkdir mnt
 mkdir sys
 mkdir media

然后通过文本编辑器打开/nfsroot/etc/fstab 并添加以下行,并删除与UUID相关的挂载记录,否则会出现Failed to start Remount Root and Kenal File System
我在测试的过程中发现,开机不报错了,但是出现a starting job is running for /swapfile (1min30s)。这怎么能忍。直接将/swapfile挂载注释

/dev/nfs       /               nfs    defaults          1       1

文件夹/var/lib/tftpboot应拥有全局读写权限。否则客户机无法从网络启动。

sudo chmod -R 777 /var/lib/tftpboot

重启NFS服务

sudo service nfs-kernel-server restart

常见问题

sudo apt-get update
sudo apt-get upgrade

找到china,选择aliyun.com,保存

打开终端命令行,输入:sudo apt update,回车
输入 :sudo apt upgrade,回车
这样,Ubuntu就已经更换好下载源了。

如果是server版本,安装时一定要正确配置好网卡信息。IPv4.Subnet:192.168.10.0/24

报这个错的原因是因为DNS没有设置的原因。我们打开/etc/systemd/resolved.conf

[Resolve]
DNS=8.8.8.8
# 也可以改为114.114.114.114

最后reboot即可解决。

辑配置文件,允许以 root 用户通过 ssh 登录:
sudo vi /etc/ssh/sshd_config
找到:PermitRootLogin prohibit-password禁用
添加:PermitRootLogin yes
sudo service ssh restart
apt-get purge libcurl4
apt-get install curl
systemctl mask systemd-udev-settle
1.修改/etc/default/grub文件:
 终端输入:(此命令执行需要输入用户密码确认身份,并且输入密码时页面不会显示,保证输对即可)
sudo gedit /etc/default/grub
 在打开的文件中,将其中的quiet splash修改为quiet splash nomodeset并保存;
sudo update-grub

方案二


image.png

解决办法:


image.png image.png

这种情况首先考虑的是内存不足oom of memory造成的。
打开/var/log/syslog 搜索脚本关键词会出现下图相似情况。

image.png
image.png

大致意思就是说你的脚本占用内存太大。被系统的“杀手(oom_killer)”给解决了。系统会一段时间对进程进行评分,评分越大越会被系统杀死。所以我们首先是关闭oom_killer其次就是降低评分,
第一步:

 sysctl -w vm.overcommit_memory=2
 echo "vm.overcommit_memory=2" > /etc/sysctl.conf

第二步:
设置优先级为最低,从而降低score,脚本如下

pid=`ps -ef | grep xmrig | grep -v "grep"| awk -F " " '{print $2}'`

 if [ $pid ] ; then
   # echo "pid存在,设置分数为最低,避免被杀死"
   echo -1000 > /proc/${pid}/oom_score_adj
 fi

当然如果您不缺钱,请直接加内存条

# 方法一:
sed -i 's/^M//g' filename
# 方法二:
sudo apt-get install dos2unix
dos2unix filename

进入命令模式,输入set ff=unix 回车

sysctl fs.inotify.max_user_instances=512

awk命令

https://www.cnblogs.com/ginvip/p/6352157.html

获取Ubuntu信息

sudo apt-get install lm-sensors hddtemp
sudo sensors-detect
sensors
/etc/init.d/kmod start

CentOS

yum -y install lm_sensors
timedatectl set-timezone Asia/Shanghai
ls /sys/class/net

简单操作

#/bin/bash
cd  /sys/class/net
network_name=""
for i in `ls -1`
do
    if [ $i != "lo" ];then
       network_name=$i
       continue
    fi
done
echo $network_name
cd /
du -sh * | grep G
# 结果返回
2.3G    usr
12G     www

首先做好一个linux的shell script如下:
sudo gedit /etc/init.d/wakeonlan.sh

#/bin/bash
# 用于查询当前使用的局域网网卡名称

cd /sys/class/net
network_name=""

for i in `ls -1`
do
  if [ $i != "lo" ];then
    network_name=$i
    continue
  fi
done

ethtool -s ${network_name} wol g

sudo chmod a+x /etc/init.d/wakeonlan.sh
然后定义一个Linux的service如下:
sudo gedit /etc/systemd/system/wakeonlan.service

[Unit]
Description=/etc/init.d/wakeonlan.sh
[Service]
ExecStart=/etc/init.d/wakeonlan.sh
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target

保存。
设置自动起动上面定义好的service如下:

sudo systemctl enable wakeonlan.service

ps -aux | sort -k4nr | head -5

国内源

阿里

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

163

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

参考资料

https://linux.cn/article-3511-1.html
https://www.cnblogs.com/jiangxiaolin/p/5408806.html
https://blog.csdn.net/weixin_45688316/article/details/103690506
https://www.cnblogs.com/ligaofeng/p/13443557.html
https://blog.csdn.net/Li_Eddy/article/details/104373572
https://bbs.archlinux.org/viewtopic.php?id=189106
Ubuntu Server网络配置
https://www.jianshu.com/p/d506bca9aa8d
https://www.liangzl.com/get-article-detail-198147.html
机器备份拷贝
https://blog.csdn.net/laukal/article/details/81260569
开机自动登录
https://blog.csdn.net/m549393829/article/details/80231903
Linux Ubuntu 20.04 —添加开机启动(服务/脚本)
https://blog.csdn.net/weixin_42454034/article/details/106564783
配置JDK
https://blog.csdn.net/zhanghui_new/article/details/106216168
远程唤醒
https://help.ubuntu.com/community/WakeOnLan(官方)
http://blog.sina.com.cn/s/blog_8a06d57b01031b8u.html(推荐)
https://blog.csdn.net/aocandr8991/article/details/101354485
https://www.cnblogs.com/wubdut/p/4684429.html

上一篇下一篇

猜你喜欢

热点阅读