Andrew Moa Blog Site

Hyper-V虚拟交换机NAT设置静态IP

前面讲过用NAT+端口映射的方式访问虚拟机,但使用过程中发现一个问题:每次宿主机重启之后,默认的Default SwitchIP地址都会变更,造成虚拟机无法访问网关进而无法联网。

为了保证虚拟机联网,每次重启开机都要手动设置Default Switch对应适配器的IP地址,非常不便。下面是参考微软官方文档 给出的解决方案。

这里前面的步骤可以通过图形用户界面去实现,首先新建一个内部的虚拟交换机:

38530a4ee6eaabf98448a647c0446d0c.png

命名虚拟交换机,记住它,后面会用到。确定新建:

2d9b503b6087be2acffc63498abc5977.png

在Windows网络适配器中找到新建的虚拟机适配器,将IP地址改成虚拟机设置的网关地址,子网掩码也改成和虚拟机设置的一致:

e4140c00e7140a6ad234b58fa208caa9.png

下面用管理员权限打开PowerShell,通过以下命令行查看是否已有NAT网络:

Get-NetNat

因为一个机器上只能有一个NAT网络,因此要先移除现有的NAT网络:

Get-NetNat | Remove-NetNat

设置NAT网络:

# InLan为NAT网络名称,172.25.64.0为子网网关IP地址,/24为子网前缀长度
New-NetNat -Name InLan -InternalIPInterfaceAddressPrefix 172.25.64.0/24

关于子网网关,和上面设置的虚拟机适配器的IP地址即虚拟机的网关地址处在同一个网段即可,末尾设置为0;本例上面虚拟机的网关地址为172.25.64.1,那子网网关地址一般设置为172.25.64.0。子网前缀即子网掩码,关于子网前缀长度,通俗来讲,像2xx.2xx.2xx.0这种都是24位,2xx.2xx.2xx.2xx这种为32位。

设置完成后通过Get-NetNat查看是否有NAT网络信息:

Name                             : InLan
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 172.25.64.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

这样新的NAT网络就配置好了,在虚拟机设置中更换成新设置的虚拟交换机。

0dede2ea198412fb98f352185b8c299c.png

阅读时长1分钟
Andrew Moa

Ubuntu安装SIMULIA2024

为什么选择SIMULIA?首先是Abaqus功能强大,绝大多数结构问题都能求解。其次流固耦合方便,STAR-CCM+自带案例就手把手你怎么和Abaqus双向耦合。再次是过往经历的惯性,毕竟主机厂Abaqus用得可不少,不缺案例和资源。

1. 准备工作

首先安装开发环境和一些必要的软件:

sudo apt update # 更新软件源
sudo apt upgrade # 更新本地安装的软件
sudo apt install build-essential # 安装开发环境
sudo apt install csh tcsh ksh gcc g++ gfortran libstdc++5 build-essential make libjpeg62 libmotif-dev

解压安装包:

mkdir iso # 新建一个iso文件夹,用于存放解压出来的文件
tar xvzf DS.SIMULIA.SUITE.2024.LINX64.tar.gz -C ./iso # 解压到iso文件夹中

2. 安装过程

2.1 启动安装程序

首先定义环境变量,不然无法启动安装程序:

# 可以把下面的内容加到${HOME}/.bashrc里,然后重新启动终端
export DSYAuthOS_`lsb_release -si`=1
export DSY_Force_OS=linux_a64
export NOLICENSECHECK=true

进入/iso/1文件夹,运行安装程序。启动图形化界面在终端运行./StartGUI.sh,类似Windows下的安装方式,跟着向导一步步安装即可。

这里选择文本界面:

./StartTUI.sh # 启动文本界面安装向导

7222cbf4b6f8545b9766ce654edf28ba.png

Enter下一步。

阅读时长2分钟
Andrew Moa

Ubuntu安装Slurm

Slurm,和PBS、LSF一样,超算上常用的任务管理系统。Slurm优点是开源免费、活跃度很高,近几年国内新兴的超算平台几乎都提供了Slurm作为主要的任务管理系统。PBS开源后活跃度低得可怜,更新到最新系统后安装一直出问题,提了issue也不见答复。LSF有版权风险,国内应用也不多,属于很少见的类型。至于命令和脚本,这三家都大差不差,学会了其中一家另外的也是手到擒来。

Ubuntu安装Slurm还是十分简单的,重要的工具基本都编译好了,直接apt安装即可,其他依赖项会自动安装:

sudo apt install slurmd	# 安装计算节点守护进程
sudo apt install slurmctld # 安装管理节点守护进程

Slurm需要有一个专门的用户用于通信等操作,这个用户的默认用户名是slurm,上面的命令其实已经自动在Ubuntu中生成了slurm用户,可以通过下面的命令验证:

lastlog | grep slurm

如果Ubuntu没有生成slurm用户,可以用以下命令生成:

sudo useradd slurm

Slurm配置文件主要在 /etc/slurm/ 目录下,主配置文件:/etc/slurm/slurm.conf,我们需要生成配置文件。官方提供了辅助生成配置文件的工具:Slurm Configuration Tool

根据网页内容提示,填写配置文件其中一些关键部分:

ClusterName=Cluster # 集群命名,任意英文和数字组合

SlurmctldHost=dell-vm # 管理节点,这里填本机名称

NodeName=dell-vm # 计算节点,同样填本机名称
PartitionName=debug # 计算节点所在分区,默认为debug
CPUs=32 # 计算节点CPU核心数,根据实际情况填写
Sockets=1 # CPU插槽数,根据实际情况填写
CoresPerSocket=32 # 每插槽核心数,根据实际情况填写
ThreadsPerCore=1 # 每核心线程数,建议为1,不建议打开超线程

SlurmUser=slurm # 默认为slurm用户,不建议改成root用户

StateSaveLocation=/var/spool/slurmctld # 管理节点守护进程的存储文件夹,默认即可
SlurmdSpoolDir=/var/spool/slurmd # 计算点守护进程的存储文件夹,默认即可

更多解释可以参考中科大网站上的信息。(1)

网页内容填写完成后点击最下面的Submit,把显示的配置文件模板拷贝下来,存到/etc/slurm/slurm.conf文件中:

sudo vim /etc/slurm/slurm.conf	# 复制粘贴到这个文件里

生成守护进程的读写文件夹:

sudo mkdir /var/spool/slurmd # Ubuntu下提示文件夹已存在,无视它
sudo mkdir /var/spool/slurmctld

启动Slurm的服务:

sudo systemctl enable slurmd
sudo systemctl enable slurmctld
sudo systemctl start slurmd
sudo systemctl start slurmctld

查看Slurm守护进程的启动状态:

阅读时长1分钟
Andrew Moa