精华内容
下载资源
问答
  • 批处理文件。winxp解决共享文件或打印机连接数的最大限制
  • 但是有用户反应,在打开共享文件的时候出现了“达到连接数目限制”的提示,该怎么办呢?在本文中小编给大家分享下解除共享限制的方法! 步骤: 1、在共享的磁盘或文件夹上单击右键,选择“属性”,切换到...
    在Win7系统中我们可以通过共享的方法让大家互相访问计算机中的文件。但是有用户反应,在打开共享文件的时候出现了“达到连接数目限制”的提示,该怎么办呢?在本文中小编给大家分享下解除共享限制的方法!

    步骤:

    1、在共享的磁盘或文件夹上单击右键,选择“属性”,切换到“安全”选项,单击“高级”按钮;

    如何解除win7共享连接数目20限制?“达到连接数目限制”的解决方法

    2、在【高级安全设置】界面,点击“更改权限”按钮;

    如何解除win7共享连接数目20限制?“达到连接数目限制”的解决方法

    3、点击“添加”按钮;

    如何解除win7共享连接数目20限制?“达到连接数目限制”的解决方法

    4、在选择用户和组界面,单击“高级”按钮;

    如何解除win7共享连接数目20限制?“达到连接数目限制”的解决方法

    5、在下面点击“立即查找”按钮,在查找出的列表中找到并选中“Everyone”,点击“确定”;

    如何解除win7共享连接数目20限制?“达到连接数目限制”的解决方法

    6、在权限项目设置里设置全部允许,点击【确定】;

    如何解除win7共享连接数目20限制?“达到连接数目限制”的解决方法

    7、然后一直点击【确定】按钮,完成设置后重启依次电脑即可解决上限问题!

    摘自:www.w10zj.com  
    www.winwin7.com
    展开全文
  • (升级修改版1.1)集群配置(Torque安装配置+Maui安装配置+SSH免验证设置+节点共享目录(NFS服务)设置+NIS服务设置+用户硬盘空间限制和核心使用限制设置)异常详细版       制作者:甄江苏 时间:2017.07.03 单位:...


    (升级修改版1.1)集群配置(Torque安装配置+Maui安装配置+SSH免验证设置+节点共享目录(NFS服务)设置+NIS服务设置+用户硬盘空间限制和核心使用限制设置)异常详细版

     

     

    制作者:甄江苏

    制作时间:2017.07.03

    上传时间:2017.9.16

    单位:湘潭大学材料科学与工程学院

     




     

         ************************************** 待完成 ****************************************






     

    本教程假设你已经在多台电脑上安装了CentOS 7.x 或RedHat 7.x版本的系统(建议每个机器上的root用户登录密码相同),并且强烈建议安装系统时选择系统语言选择英文。


    本教程主要分为这几个方面:

    1. IP设置、计算机名称设置及hosts文件修改

    2. SSH双向免验证登录及其相关设置

    3. 防火墙设置

    4. 节点间共享文件夹(NFS服务)设置

    5. NIS服务设置

    6. Torque安装及其设置

    7. Maui安装及其设置

    8. 用户硬盘使用容量限制

    9. 并行运行相关说明(比较重要!!!)

     

     

     

     

     

    1. 设置计算机名称设置及hosts文件修改

    1.1   IP设置(所有节点都要设置,只有主节点必须设置两个,外网和内网):

    一般服务器电脑都有两个网络接口(至少主节点上面有两个接口吧),我们可以把主节点上的一个网络接口连接外网,以便在其他电脑上通过远程ssh来进行相关操作,比如修改配置,提交任务等。另一个接口来连接内网,以便和其他子节点相互通信。外网IP是网络管理中心分配的,内网IP可以自己分配。

     

    用图形桌面的方式进入系统,点击右上角,会看见网络接口名称(比如我的这个显示enp2s0和enp3s0两个接口),前提是你的两个接口已经连上了网线。然后点击进去,会看见关闭(或打开)选项和设置选项,点击进去进行设置,我们现在先设置内网IP(我用enp2s0接口作为内网接口),像上面说的那样选择一个接口进去设置:

    进去后,点击右下角的齿轮状图标进行设置,然后出现一个菜单,会发现左边有6项,选择第三项,进去后为左中下角的第一个“Connect automatically”打钩,然后选择左边的第四个选项(也就是“IPV4”那个选项),然后选择右上角的“ON”,“ON”的下边那个(有DHCP的那个)用鼠标点击一下,选择中间的选项(“Manual”选项),然后在出来的地方填写IP相关信息,第一行是IP地址,可以填比如:192.168.1.1(不能是192.168.1.0),其他节点可以是 .2,.3……等;第二行是掩码,所有节点都填写:255.255.255.0;第三个是网关,可以填:192.168.1.1(所有节点网关都一样),然后点击应用就可以了,而外网IP跟上面的设置方法差不多,只不过是在连接外网的网络接口里填写由网络管理中心给你的相关数据而已。

     

     

     

    假如你现在设置了两台电脑,内网ip分别为:192.168.1.1和192.168.1.2,你想知道这两台电脑之间能不能通过内网通信,直接在一台机器上的终端执行:

    [user]$  ping  IP

     

    这里的IP是另一台机器的ip,如果数据一行一行刷下来,然后再在另一台机器上也像上面这样做,如果也是一样,说明两台机器能够相互通信,如果卡住半天不动,说明有问题,自行百度解决。

     

    此外,这里顺便设置一下网络接口速度,设置成千兆的,不然可能会自动变成百兆的,降低节点间通信速度。先确定内网网络接口,假如是enp2s0,然后利用root权限执行:

    [root]#  ethtool  -s  enp2s0  autoneg  off  speed 1000  duplex  full

    注意,每台计算机都按照上述方式设置一下。



    1.2   修改计算机名称:

    为每台计算机修改适当的名称,如 node000,node001,node002……(如果在安装系统时已经设定了指定的计算机名称,那就不用设置了)

    如果是CentOS 7.x或者RedHat 7.x版本的linux系统,则用root权限运行命令修改:

    [root]#  hostnamectl  set-hostname  node000

     

    然后用命令查看是不是修改了。

    [root]#  hostname

     

    修改所有节点(包括主节点)的名称,其他版本系统自行百度修改方法。

     

     

     

    1.3   修改hosts文件:

    主节点上用root权限修改/etc/hosts文件:

    [root]#  vim  /etc/hosts

     

    然后将本机的内网IP和所有其他节点(包括主节点)的IP填写到最下边,IP后面跟上对应的计算机名,计算机名后面也可以写上别名,比如像这样:

    192.168.1.1  node000 node0     #node0是别名,用于方便ssh管理其他节点

    192.168.1.2  node001 node1     #这样后面就可以用ssh node1来登录node001这个节点了

    ……                                         

     

    后面设置了ssh免验证登陆后要把这个hosts文件复制到所有子节点,稍后会在2.4节讲。

    注意,node000是计算机的名称,而这里的node0是别名,它就像一个变量一样,代指IP地址,以后需要输入这个IP的地方,直接用node0代替就行了。

     

     

     

     

     

    2. SSH双向免验证登录及其相关设置

    如果想要多节点并行运行,必须让各个节点间能够通过ssh相互登录且免验证。

    方法:

    一个简便的方法是在主节点上创建ssh密钥和公钥,然后将整个~/.ssh/这个文件夹拷贝到所有子节点相应位置即可,而对于设置了NIS服务的集群来说,除了root用户需要拷贝外,其他用户都不需要拷贝。

     

    2.1 创建ssh秘钥:

    主节点上的root用户下,比如node000节点上,创建ssh秘钥,在终端执行:

    [root]#  ssh-keygen  -t  rsa


    然后一直确认下去。

    然后进入~/.ssh/文件夹下,制作授权文件:

    [root]#  cd  ~/.ssh/

    [root]#  cp  id_rsa.pub  authorized_keys

    [root]#  chmod  600  authorized_keys

     

     

    2.2 将ssh设置文件并拷贝到所有子节点:

    在主节点上的root用户下,直接将刚才生成的~/.ssh/文件夹拷贝到所有子节点相应位置即可:

    [root]#  scp  -r  ~/.ssh/ node1:~/

    [root]#  scp  -r  ~/.ssh/ node2:~/

    [root]#  scp  -r  ~/.ssh/ node3:~/

    ……

     

    在拷贝过程中会让你选择yes/no,统统选择yes,然后让你输入你想拷贝的那个节点的root用户的密码,输入就行了。


    上面的手动拷贝很麻烦,特别当节点很多时,需要不停地输入密码等等,这里可以用一个脚本实现自动输入密码和拷贝,非常快(这会用到expect命令,请自行百度)。


    弄好后,直接用ssh node1, ssh node2…..登录各个节点时(双向登录都可以)无需输入密码时,就设置正确了。

    如果没有NIS服务,则其他非root用户想要实现免验证登录,也要像root用户一样这样设置。

     

     

    2.3 有NIS服务时SSH免验证登录的设置(在设置NIS服务后设置非root用户时进行此步设置,此外,在每次创建新用户时也要执行此步设置)

    这一步建议先按照2.2的方式设置好root用户的ssh免验证登录,然后根据第5节设置好NIS服务后,再按照本节设置其他非root用户的ssh免验证登录。


    有NIS服务就不需要拷贝非root用户的ssh设置文件了,但是root用户的设置文件还是要向上面那样设置。


    假设此时已经设置好root用户的免验证登录和配置好NIS服务了,然后设置普通用户的ssh免验证登录,此时只要设置主节点上的普通用户就行了,并且子节点都根本不需要创建这个用户。

    比如我在主节点上创建一个test用户:

    [root]#  useradd  test

    [root]#  passwd  test

     

    然后会叫你设置新用户的密码,还会让你确认,弄完后,登陆一下这个用户:

    [root]#  su  test

     

    设置好后,su 进入这个用户,设置ssh:

    [user]$  ssh-keygen  -t  rsa

     

    一直确认下去,然后创建authorized_keys并加上权限:

    [user]$  cp  ~/.ssh/id_rsa.pub  ~/.ssh/authorized_keys

    [user]$  chmod  600  ~/.ssh/authorized_keys

     

    这样就设置完了,不过注意要把所有机器上的SELinux关闭,下面设置NIS服务时会讲。

     

     

    2.4 SSH验证的额外设置:

    登入所有节点的(包括主节点)的root用户下,修改/etc/ssh/ssh_config:

    [root]#  vim  /etc/ssh/ssh_config

     

    然后找到“#   StrictHostKeyChecking ask”这一行,把这一行的“#”去掉,把后面的“ask”改成“no”,然后保存,所有节点都要这么做。

    当然这里可以用脚本实现。

     

    上面1.3部分说的hosts文件拷贝可以在ssh免验证登录设置好后进行,在主节点上的root用户下用scp命令拷贝:

    [root]#  scp  /etc/hosts  node1:~/

    [root]#  scp  /etc/hosts  node2:~/

    [root]#  scp  /etc/hosts  node3:~/

    ……

     

    这样以后拷贝文件时就不需要输入密码了!

     

     

     

     

     

    3. 防火墙设置

    在第一步的时候已经知道主节点上一般需要两个网络接口,一个接内网,一个接外网,内网节点之间通信会受到防火墙的诸多限制,所以需要配置。当然可以把所有节点的防火墙都关闭,这样也行,不过这样的话,主节点因为还有外网接入,非常容易受到攻击(我们这里就被攻击过,结果把主节点的所有文件都删除了,这有两个可能原因,一个是防火墙关了,第二是密码设置的非常简单),所以强烈建议主节点不要关闭防火墙,可以把其他所有没连外网的子节点的防火墙都关闭,而主节点的防火墙需要设置一下(防火墙设置需要root权限)。

    首先在主节点上查看防火墙的开启状况:

    [root]#  firewall-cmd  --state

     

    如果没有运行,则开启防火墙(一般是默认开启的):

    [root]#  systemctl  start  firewalld.service

     

    然后查看两个网络接口在什么区域:

    [root]#  firewall-cmd  --get-active-zones

     

    一般会发现两个网络接口都在public区域,然后找出这两个中的哪个是接内网的,比如我的两个网络接口名叫enp3s0和enp2s0,而我的enp2s0是接内网的,这在第1节IP设置那里就设置好的,所以接下来就是要把接内网的网络接口放到防火墙的“信任”区域里:

    [root]#  firewall-cmd  --zone=trusted  --change-interface=enp2s0

    [root]#  firewall-cmd  --reload

     

    这样就行了,但是这样设置不是永久生效的,重启电脑或者重启防火墙服务就又会回到原始状态,就需要重新设置。对于重启电脑,可以将上面的命令加入开机自启动,首先把/etc/rc.d/rc.local文件加上可执行权限:

    [root]#  chmod  +x  /etc/rc.d/rc.local

     

    然后将这个文件打开,在里面加上:

    firewall-cmd  --zone=trusted  --change-interface=enp2s0

    firewall-cmd  --reload

     

    这样启动电脑时就会自动设置了,但是不重启电脑而仅是重启防火墙服务后这个还是需要手动设置的(在终端输入这两个命令进行设置)。

    然后进入其他所有没联外网的子节点(如果联外网的话,不想关闭防火墙的话也是按照上面的设置),将防火墙的开机自启动服务取消:

    [root]#  systemctl  disable  firewalld.service

    [root]#  systemctl  stop  firewalld.service

     

    这样所有子节点在重启后就不会打开防火墙了。

     





    4.节点间共享文件夹(NFS服务)设置

    多节点并行运行软件时,需要在某一个节点的某个目录下提交任务(一般设置为主节点的某个目录),这个目录需要被各个其他节点相同的目录所挂载,注意,这些目录不能在任何用户的主目录(即各个用户的~/及其子目录)下,任何其他目录下都可以(事实上,后面要安装的软件,如VASP,LAMMPS等,也不能安装在任何用户的主目录下(root用户主目录也不行))。

     

    为了使第5节设置的NIS服务对新建用户生效,我们直接把所有子节点的/home/目录挂载到主节点的/home/目录下。然后另外再创建一个用于共享应用程序的目录,并共享给所有子节点。此处我们用/opt/目录作为共享应用程序目录(这个目录是系统自动创建的,所以不需要手动创建了)。

    首先在主节点上用root权限打开文件修改:

    [root]#  vim  /etc/exports

     

    在里面添加:

    /home/  192.168.1.1/20(insecure,rw,async,no_root_squash)

    /opt/  192.168.1.1/20(insecure,rw,async,no_root_squash)

     

    前面的目录表示被挂载目录,后面的192.168.1.1/20表示一个IP地址段:

    192.168.1.1 — 192.168.1.20

    表示这个IP地址段中的所有计算机都可以挂载在此节点上。

    这个IP地址段就是各个节点的内网IP,你的内网IP设置成哪一段就写成哪一段。

    注意,“192.168.1.1/20(insecure,rw,async,no_root_squash)”这一字符串中间没有空格。

     

    小提示(这个一般不会出现,如果出现这个错误,你要大概知道怎么错的):果你后面在主节点上建立一个新用户,而在子节点上将/home/目录挂载到主节点上的/home/目录下,则配置NIS服务后在子节点上登录这个新建用户时,如果这个新用户的UID大于1000 (貌似是1000,具体忘了)并且上面的exports文件中没有insecure这个参数时,则会出现。。。/.bashrc:Permission denied的错误提示。这时应该加上insecure这个参数。

     

    添加完成后,保存退出,然后更新这个文件:

    [root]#  exportfs  -rv

     

    最后在主节点上开启nfs服务,并将其设置为开机自启动:

    [root]#  systemctl  start  nfs-server.service

    [root]#  systemctl  enable  nfs-server.service

     

    然后到子节点上挂载 (必须到其他节点上用root权限来挂载,不能在被挂载节点上操作):

    [root]#  mount  -t  nfs  node0:/home/  /home/  -v

    [root]#  mount  -t  nfs  node0:/opt/  /opt/  -v

     

    挂载完成后,你到这个目录下就能看到node0节点下这个共享目录中的文件。

    你想挂载几个节点,就需要到那些节点执行以上操作,所以这也可以用脚本完成。

     

    如果想取消挂载某个节点,只要到那个节点上用root权限执行:

    [root]#  umount  /home/  -v

    [root]#  umount  /opt/  -v

     

    就表示取消本节点的挂载。

     

    注意:在重启子节点前,要将所有子节点的挂载目录取消挂载,然后再关机或重启;并且重启电脑后,需要重新在子节点上执行挂载命令,教程最后会有例子。

     

     

     

     

     

    5. NIS服务设置

    5.1 在主节点上下载NIS服务安装包:

    下载安装yp-tools, ypbind,ypserv, 和rpcbind(不过rpcbind对于centos系统来说一般是已安装的,如果用在主节点上(假设主节点已经连接外网了)运行yum install rpcbind,等待一段时间出现提示这个已经安装上了,则不用下载这个,否则后面安装会出错,所以此处我就不下载安装了),下载方式为在主节点上的终端输入(前提是主节点已经联网了):

    [root]#  yum  install  yp-tools  yp-bind  ypserv  --downloadonly  --downloaddir=/NIS/

     

    然后进入NIS目录安装:

    [root]#  cd  /NIS/

    [root]#  yum  install  *  -y

     

    安装完成后,将yp-tools和ypbind两个安装包拷贝到所有子节点 (用scp命令拷贝啊),然后进入子节点,找到这两个包的位置,执行下面命令安装之:

    [root]#  rpm  -ivh  *.rpm

     

     

    5.2 NIS服务端设置(在主节点上设置):

    注意,所有节点上的SELinux服务必须关闭才行,不然新建用户后,在新用户下不能够实现各个节点的ssh免验证登录。关闭方式为打开/etc/selinux/config,然后修改里面的“SELINUX=”后面的字符串,改为disabled,然后重启电脑才行。

    这里也可以用脚本实现。

     

    首先指定NIS网域,打开文件:

    [root]#  vim  /etc/sysconfig/network


    在里面添加:

    NISDOMAIN=zhjs     #等号后面的域名可随意写,后面设置时会用到

     

    然后修改配置文件/etc/ypserv.conf:

    [root]#  vim   /etc/ypserv.conf

     

    可以在“# *         : *       : passwd.byuid     : port”下面添加上:

    127.0.0.0/255.255.255.0       :*:*:none

    192.168.1.0/255.255.255.0   :*:*:none

    *                                             :*:*:deny

     

    表示开放lo内部接口,开放网域为192.168.1的网域,阻止其他一切来源的NIS要求。

     

    启动相关服务并加入开机自动:

    [root]#  systemctl  enable  ypserv.service

    [root]#  systemctl  start  ypserv.service

    [root]#  chmod  754  /usr/lib/systemd/system/ypserv.service

    [root]#  systemctl  enable  yppasswdd.service

    [root]#  systemctl  start  yppasswdd.service

    [root]#  chmod  754  /usr/lib/systemd/system/yppasswdd.service

     

    然后检查设置:

    [root]# rpcinfo  -u  localhost ypserv

     

    如果出现:

    program  100004  version  1  ready  andwaiting

    program  100004  version  2  ready  andwaiting


    表示设置正常(第一个可以不出现)。


    最后生成NIS数据库:

    [root]#  /usr/lib64/yp/ypinit  -m


    然后会出现:

    …….

    nest host to add:node000         #这是你的主机的计算机名,是自动捕捉到的

    nest host to add:

     

    在出现这个的时候,按下Ctrl+d结束输入。

    然后下面又出现叫你确认,填上y确认即可。

    然后重启ypserv和yppasswdd服务:

    [root]#  systemctl  restart  ypserv.service

    [root]#  systemctl  restart  yppasswdd.service

    注意,如果你在主节点上的用户和密码什么的动过(比如新建用户啦,在主节点上改用户密码啦等等),则要重新制作数据库(重复上面的NIS数据库生成步骤),并重启ypservyppasswdd服务(教程最后会有例子)。此外,如果重新设置了域名,最好重启电脑。

     

     

    5.3 NIS客户端设置(所有子节点上设置):

    在所有子节点上用setup命令设置:

    [root]#  setup

     

    出现如下所示(用远程ssh登录工具,可能这个界面部分显示乱码,但关键部分没乱码):

    选择第一个进去。

     

    选择“Use NIS”,按空格键就会在[]中出现*号,表示选中,然后把光标调到红色的NEXT位置继续设置。

    Domain位置填写你之前在主节点上设置的域名,Server填写主节点的内网IP,然后确认,之后就会回到主界面,就可以退出了,如果没回到主界面,说明设置错误。

     

     

    5.4 检验NIS客户端(子节点上):

    先启动相关服务:

    [root]#  rpcbind

    [root]#  ypbind

     

    可以把ypbind放到/etc/rc.d/rc.local中让其自启动:

    [root]#  echo  "ypbind"  >>  /etc/rc.d/rc.local

     

    注意,/etc/rc.d/rc.local这个文件必须具有可执行权限,不放心的话,可以加上:

    [root]#  chmod  +x  /etc/rc.d/rc.local

     

    然后检验:

    [root]#  yptest

     

    出现类似于下面的界面(Test 9也包含了),则说明设置正确

     

    本教程根据鸟哥的教程设置:

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631052873d590297634b818b4468d4e411d2234c413031b5fc3022674296d8223c5de8034bed847725774777f786ca8e4bdfe7c969388850762a5e92044f934fa0971d64&p=8b2a97378c9c0afe42bd9b7d0d16cc&newp=9b36d51985cc43b144bd9b7d0d16c4231610db2151d7d21161c8&user=baidu&fm=sc&query=NIS&qid=98261e4700030c0a&p1=2

     

     

     

     

     

    6. Torque安装及其设置

    在集群上安装软件,一般只需要安装在主节点上(但不能安装到任何用户主目录下,并且需要root权限),然后将软件安装目录共享给其他所有子节点即可,当然也可以把安装后的文件拷贝到所有子节点的相同目录下(前提是所有子节点与主节点的操作系统版本是一样的)。不过对于某些软件,可能子节点不需要或不需要它的全部,而主节点需要,比如这里的Torque和下面的Maui,则此时最好不要把它安装在共享目录里。

    此处我把Torque安装在主节点的/Programs/目录里,这个目录并没有共享给其他子节点。

    必须先安装Torque,然后才能安装后面的Maui

     

    6.1 安装Torque Server:

    Torque可以直接在Linux上下载,也可以到官网下载后拷贝到Linux上。直接下载的方式是:

    [root]#  wget  http://www.adaptivecomputing.com/download/torque/torque-6.1.0.tar.gz  -O  torque-6.1.0.tar.gz

     

    我这里是到官网下载的目前次新版的torque 6.1.0版本(目前最新版6.1.1与下面的Maui最新版3.3.1不兼容,所以不要用6.1.1),在主节点上解压:

    [root]#  tar  -zxf  torque-6.1.0.tar.gz

     

    解压后,进入解压目录,执行:

    [root]#  ./configure  --prefix=/Programs/Torque  --enable-cgroups  --with-hwloc-path=/usr/local

     

    表示我将会把torque安装在/Programs/Torque/目录下,configure完成后,执行:

    [root]#  make  -j  8

     

    表示用8个核心编译,如果你有更多的核心,可以用更多的核心编译(比如24核心用 -j 24)

    make完成后,执行:

    [root]#  make  install


    修改环境变量/etc/profile,主节点和所有子节点都修改,在最下面加入:

    export  PATH=/Programs/Torque/bin:/Programs/Torque/sbin:$PATH

    export TORQUE_HOME=/var/spool/torque

     

    保存并退出文件后,在终端执行:

    [root]#  source  /etc/profile

     

    现在初始化serverdb,在主节点上刚才的torque解压文件夹里,将root设为Torque管理账户(执行时会让你确认,直接确认就行):

    [root]#  ./torque.setup  root

     

    然后确认torque配置文件/var/spool/torque/server_name里的内容,如果是主节点名称,那就对了,如果不是或没有,则改为主机名称(是机器名称,如上面的node000,不是IP域名哈)

     

    在主节点上,在/var/spool/torque/server_priv/文件夹下创建一个名为nodes的文本文件,在里面填写上主节点(如果不想让主节点参与运算,就不要填写主节点的)和各个子节点机器的计算机名,并且名称后面跟上核心数量,每行一个,比如:

    node000 np=8

    node001 np=8

    …….

    注意,是节点计算机名,不是IP域名。

     

    然后将/var/spool/torque/下的spool和undelivered文件夹的权限设置为1777

    (不过貌似默认就是这个权限):

    [root]#  chmod  -R  1777  /var/spool/torque/spool  /var/spool/torque/undelivered

     

    在主节点上刚才的torque解压文件夹里,配置pbs_server使其跟随系统自动启动,然后启动此进程:

    [root]#  qterm

    [root]#  chmod  754  /usr/lib/systemd/system/pbs_server.service

    [root]#  systemctl  enable  pbs_server.service

    [root]#  systemctl  start  pbs_server.service

      


    6.2 配置trqauthd:

    在主节点上刚才的torque解压目录下,配置trqauthd让它跟随系统启动,然后启动trqauthd进程:

    [root]#  chmod  754  /usr/lib/systemd/system/trqauthd.service

    [root]#  systemctl  enable  trqauthd.service

    [root]#  systemctl  start  trqauthd.service

     

     

    6.3 安装Torque MOMs服务:

    每个参与运算的子节点上都要安装torque mom进程(主节点不需再安装,因为已经安装了)。

    首先在主节点上,在刚才的torque解压目录下,创建自解压文件:

    [root]#  make  packages

     

    这会生成好几个torque-package-*.sh自解压文件,然后将其中一个拷贝到所有子节点上(Torque MOM Host):

    [root]#  scp  torque-package-mom-linux-x86_64.sh  node1:~/

    [root]#  scp  torque-package-mom-linux-x86_64.sh  node2:~/

    ……


    当然节点很多的话,可以利用脚本执行。

     

    然后进入各个子节点安装上面拷贝过来的自解压文件:

    [root]#  ./torque-package-mom-linux-x86_64.sh  --install

    [root]#  libtool  --finish  /Programs/Torque/lib

     

    然后在主节点和所有子节点上配置pbs_mom服务跟随系统启动,并启动服务:

    [root]#  chmod  754  /usr/lib/systemd/system/pbs_mom.service

    [root]#  systemctl  enable  pbs_mom.service

    [root]#  systemctl  start  pbs_mom.service

     

     

    此时弄完后,在主节点上执行pbsnodes -a会看到所列出的节点的状态state都是free状态。如果不是,请将所有节点重启(或者关机后再开机,可能比重启好点),然后挂载所有子节点到主节点后再执行pbsnodes -a查看,如果还有错,那应该是其它错误了。

     

    下面还要安装Maui任务调度服务,然后整个任务调度器才能使用。

     

     

     

     

     

    7. Maui安装及其设置

    Maui是与Torque配套的任务调度服务(虽然Torque本身也有,但一般使用Maui)。Maui只放在提交任务的节点上,我们这里只把主节点当做提交任务的节点,所以Maui只需安装在主节点上就行了。

     

    7.1 Maui的安装:

    到Torque官网下载最新版Maui(目前最新版是3.3.1),然后放到主节点上解压(全程root安装),然后进入解压目录,执行:

    [root]#  ./configure  --prefix=/Programs/Maui/  LDFLAGS=/Programs/Torque/lib

    [root]#  make  -j  8

    [root]#  make  install

     

    这就将Maui安装到了/Programs/Maui/这个目录里

     

     

    7.2 Maui启动设置:

    在Maui的解压目录里,找到/contrib/service-scripts/redhat.maui.d这个脚本文件,在里面找到并修改:

    MAUI_PREFIX=/Programs/Maui                             #将其改为Maui的安装目录

    daemon  --user  root  $MAUI_PREFIX/sbin/maui    #将用户名改为root

     

    保存退出,将其拷贝到/etc/init.d/目录中,并改名和加可执行权限:

    [root]#  cp  /contrib/service-scripts/redhat.maui.d  /etc/init.d/maui

    [root]#  chmod  +x  /etc/init.d/maui

     

    之后就可以通过这个脚本启动、停止maui了:

    [root]#  /etc/init.d/maui  start        #启动maui

    [root]#  /etc/init.d/maui  stop        #停止maui

    [root]#  /etc/init.d/maui  restart    #重启maui

    [root]#  /etc/init.d/maui  status     #查看maui开启状态

     

    当然也可以将其加入环境变量,启动就不需要全路径了

    可以将maui加入开机自启动:

    [root]#  echo  " /etc/init.d/maui  start "  >>  /etc/rc.local

     

     

    7.3 Maui中限制用户节点使用量的配置:

    在/usr/local/maui/maui.cfg文件里,有Maui的相关配置,可以修改。

    打开这个文件,在文件最下面那部分找到“# USERCFG[john]”这一段,将“#”号去掉,然后将john改为你想要限制的用户名,后面跟上相关信息:

    USERCFG[username]    MAXJOB=2  MAXNODE=2  MAXPROC=10


    其中,MAXJOB=2表示这个用户最多可以同时提交2个任务,这个一般都不需要设置;MAXNODE=2表示这个用户最多同时可以用2个节点;MAXPROC=10表示这个用户最多同时可以用10个核心。


    这三个参数可以只设置其中一个。如果想限制多个用户,像上面那样写多个就行了。

    有个我遇到的bug,就是当我像上面那样写三个的时候,会发现设置没用,然当我只设置MAXPROC的时候,设置就起作用了,所以我现在都是只设置第三个MAXPROC参数,其他两个没有加上。

     

    修改完后开启或者重启Maui,方法是直接在主节点root终端输入:

    [root]#  /etc/init.d/maui  restart


    即可。

     

    然后你可以检查一下PBS是否可用,进入一个非root用户或者新建一个非root用户,对这个用户进行ssh设置以及NIS设置之后,执行:
    [user]$  echo  "sleep 60"  |  qsub

     

    这会提交一个任务,这个任务会沉睡60s,然后任务就结束。执行后,用qstat查看任务状态,如果任务状态显示的是R,表示这个任务正在运行,就表示安装成功了:

     

    注意,如果安装完Torque后,Maui没安装配置成功,则提交任务后不会进行计算,会显示Q状态(等待状态)。此外,如果maui服务没有启动,则任务也是Q状态,此时要像上面7.2节那样开启maui。

     

     

     

     

     

    8. 用户硬盘使用容量限制(这个可以不设置,对计算无影响)

    一般用户都是在主节点上提交任务,而所有用户都登录到主节点上,为了使各个用户有适当的存储空间,需要对每个用户的硬盘使用容量进行限制。

    在上面我们把共享目录建立在/home/文件夹下的,用户提交任务时都要在共享目录下提交任务,才能实现并行计算,我们现对/home/目录进行设置。假设当初在装系统时专门给/home/目录分配了1TB的空间,所以我们可以为每个用户分配50GB的空间,这样就能建立20个用户。这里要使用磁盘配额命令quota,全程使用root权限(这里quota详细情况请看《鸟哥的linux私房菜基础学习篇》,讲得很好,或者自行百度):

     

    8.1 /home/目录的quota设置:

    首先我们查看/home/目录在哪个磁盘分区:

    [root]#  df  -h  /home/


    执行后会出现/home/目录所在的磁盘分区,我的这里/home/目录在/dev/sda2这个分区上

     

    然后让/home/目录拥有quota支持:

    [root]#  mount  -o  remount,usrquota,grpquota  /home/


    注意usrquota的写法,不是user…

     

    然后查看/home/目录是否拥有了quota支持:

    [root]#  mount  |  grep home


    会发现出现类似于这样的结果:

    /dev/sda2  on /home  type  ext4 (rw,usrquota,grpquota)


    出现了usrquota和grpquota,说明已经设置好了。

     

    然后将配置写入配置文件中,直接修改/etc/fstab文件,文件类似于这样(这里我已经修改了的):

    也就是将/home这一行后面的defaults后面填写上“,usrquota,grpquota”,然后保存,注意不要写错,不然会出现意想不到后果,所以最好用vim修改,它可以把关键字用颜色显示出来。

     

    然后取消/home/目录的挂载,并重新挂载(我的在umount时出错了,没事,继续下面的就行):

    [root]#  umount  /home/

    [root]#  mount  -a

     

     

    8.2 建立quota配置文件:

    用quotacheck命令扫描并建立quota配置文件:

    [root]#  quotacheck  -avug


    扫描后就会自动建立了quota配置文件,可以查看:

    [root]# ll  -d  /home/a*


    (是L的小写,不是i的大写)会列出两个配置文件aquota.group和aquota.user

    这分别是用户组和用户的配置文件。

     

     

    8.3 quota启动、关闭与限制值设置:

    利用quotaon命令启动quota服务:

    [root]#  quotaon  -auvg


    一般只要启动一次就够了,以后即使电脑重启,这个服务也会自动启动的。

     

    也可以利用quotaoff命令关闭quota服务,这会永久关闭,即使重启电脑也不行,只能手动开启:

    [root]#  quotaoff  -a

     

    然后用edquota命令编辑磁盘的限制值和宽限时间:

    [root]#  edquota  -u  test


    表示要配置test这个用户的磁盘使用值,会出现一个文件,类似于这样:

    blocks指的是磁盘容量,不要设置它,后面的soft和hard分别指的是你想要分配给这个用户的磁盘容量的软限制值和硬限制值,可以修改,单位是KB;

    inodes指的是文件数量,也不要修改它,后面的soft和hard分别指inodes的软限制值和硬限制值,你可以修改(不过一般不需要修改这个)。

     

    soft指的是你达到这个使用量的时候,会发出信息给你,提醒你使用量超过了,你就可以删除一些东西把使用量降低,当然你不理它也可以,但是超过宽限日期后,soft值就会变成hard的值,强制限制你的硬盘容量到soft设置的值 (也就是会自动删除一些文件使磁盘容量达到soft的值),超过的话根本不会让你的数据写入到磁盘。

     

    上面的soft值和hard值为0时都表示不限制

     

    然后就设置好了,如果想设置其他用户的磁盘限制,并且和这个用户的限制一模一样,可以用复制命令来复制设置:

    [root]#  edquota  -p  test  -u  other_user1

    [root]#  edquota  -p  test  -u  other_user2

    ……


    表示把test用户的磁盘配额模式复制给other_user1用户和other_user2用户。

     

    然后可以修改宽限时间:

    [root]#  edquota  -t


    自己设置吧

     

    利用repquota命令查看限额报表:

    [root]#  repquota  -auvs


    这会显示所有用户的限额报表

     

     

    关于quota的其他相关知识请查阅《鸟哥的linux私房菜—基础学习篇》,可以设置一下自动提醒功能。

    设置完成后,建议将所有节点重启一下(重启前请看9.1)

     

     

     

     

     

    9. 并行运行相关说明

    9.1 开机和关机注意事项(只在主节点上设置,用root权限设置):

    由于没有设置自动挂载,所以在每次启动节点之后,都要挂载共享目录可以写一个脚本放在主节点上,运行脚本就能挂载,例如新建名为mount.sh的文本文件并写入:

    #!  bin/bash

    for  i  in  node1 node2 node3

    do

    ssh  $i  "mount  -t  nfs  node0:/opt/  -v;  mount  -t  nfs  node0:/home/  -v"

    ssh  $i  "ypbind"  ##在我的测试中,ypbind有时没有自动启动,这会导致NIS服务无法正确运行,所以最好加上这句

    done

     

    执行方式:

    [root]#  sh  mount.sh

     

     

    如果想要重启子节点或者主节点,则要先把这些挂载的目录取消挂载,也可以写一个脚本,例如新建名为umount.sh的文本文件并写入:

    #!  bin/bash

    for  i  in  node1 node2 node3

    do

    ssh  $i   "umount /home/  -v;  umount/opt/  -v"

    done

     

    执行方式:

    [root]#  sh  umount.sh

     


    9.2 新建用户注意事项(只在主节点上设置就行了,不需要在子节点设置):

    新建用户并设置密码后,首先要进入这个用户,建立ssh秘钥和公钥,并把id_rsa.pub这个文件在相同文件夹下复制一份,命名为authorized_keys,并加上权限600(就是按照2.3的方式设置);然后按照5.2最后面的那个方式设置一下NIS服务;最后设置一下环境变量~/.bashrc,你要把那些需要并行的软件的环境变量写到这个文件中去,比如你在共享目录中安装了mpich,则你要在这个~/.bashrc文件中加入这个软件的环境变量。



    9.3  Torque的一些常用命令:

    提交任务:qsub  files   # files是一个脚本文件,见9.4

    查看任务状态:qstat  #后面可以跟上参数 -r  -n  -f  等,效果自己试试

    删除任务:qdel  job_NO.   #job_NO. 是一个数字,可用qstat查看

    使某一个节点离线(不使用这个节点),需要root权限pbsnodes  -o  node_name   # node_name是节点计算机名称,不是那个hosts中设置的ip名称

    使离线的节点重新上线,需要root权限:pbsnodes  -c  node_name    

     

    注意,对于qstat命令,只有root用户才能查看所有用户的任务状态,而非root用户只能查看用户自己的任务状态。

     

     

    9.4 Torque任务脚本的例子:

    #PBS  -S  /bin/bash

    #PBS  -N  job_name

    #PBS  -lnodes=1:ppn=24   ##表示用1个节点,每个节点用24个核

    #PBS  -lwalltime=5000:00:00  ##表示如果这个任务时间超过5000小时,就停止

     

    cd  $PBS_O_WORKDIR

    echo  Starting Time  is `date`  >  display  ##可以没有(这里的 ' ` ' 是键盘的TAB键上面的反斜点)

    echo  Directory  is  `pwd`  >>  display  ##可以没有

    NPROCS=`wc  -l  <  $PBS_NODEFILE`  ##  -l 是L的小写

    ulimit  -s  unlimited  # 可以没有,大家可以百度下这个干嘛用的,我就不多说了

    mpirun  -np  $NPROCS  -hostfile  $PBS_NODEFILE  cp2k  batio3.in  >>  display

    ##上面这一行就是这个任务要干什么的,表示调用cp2k这个程序,使其读入batio3.in这个文件进行运算,注意的是如果你用的程序(如mpirun,cp2k)没有加入环境变量,则需要全路径

    echo  End  time  is  `date`  >>  display  ##可以没有

     


    展开全文
  • 购买独享带宽或是共享带宽时都需要选择带宽大小,该值为出云带宽的最大上限。如果出现依赖于公网的web应用程序出现卡顿等情况,请先排查该弹性云服务器绑定的EIP独享带宽是否超过带宽最大上限。 说明: 带宽超限后...

    问题现象

    购买独享带宽或是共享带宽时都需要选择带宽大小,该值为出云带宽的最大上限。如果出现依赖于公网的web应用程序出现卡顿等情况,请先排查该弹性云服务器绑定的EIP独享带宽是否超过带宽最大上限。

     说明:

    带宽超限后,可能会引起随机丢包,为保证业务正常运行,推荐您对带宽进行监控。

    排查方法一

    查询EIP独享带宽历史超限情况。

    1. 登录管理控制台,查看弹性云服务器绑定的EIP地址。

      图1 查看EIP 

    2. 在云监控服务中,单击“事件监控”。

      图2 事件监控 

    3. 单击“查看事件”,查看超限详情。

      图3 查看事件 

      如果没有“EIP带宽超限事件”显示,说明当前EIP的独享带宽未超限,请排查其他原因。

      如果有“EIP带宽超限事件”显示,说明当前EIP的独享带宽已经超限,如需保证业务正常,请扩大带宽。扩大带宽的操作请参见“修改弹性公网IP的带宽”。

     说明:

    目前该功能的监控对象只针对EIP,共享带宽的超限情况暂不支持在“事件监控”中展示。详情请参见《云监控服务用户指南》

    排查方法二

    设置告警规则,带宽超限时会进行提示。

    1. 登录管理控制台,在云监控服务中,选择“告警 > 告警规则 ”。

      图4 告警规则 

    2. 单击“创建告警规则”,配置带宽超限的告警规则。

      图5 创建告警规则 

    当实际带宽超限,会产生告警,系统会自动进行通知。

    告警基础功能免费,触发产生的告警消息由SMN发送,可能产生少量费用,具体费用由SMN结算。详情请参见《云监控服务用户指南》

    展开全文
  • 原理是:假如A文件夹共享,那么它只能被20用户同时访问,但是通过“高级共享”选项中的设置,把A文件夹一另外一个名字出现,假如是B,那么现在B可以同时被很多用户访问了(具体多少需要你自己去...
    解决关于win7共享文件连接数限制的问题
    今天看到论坛有人发帖,求解关于win7共享文件连接数限制的问题,这个刚才我仔细的研究了一下,好像是已经把这个问题解决了。
    原理是:假如A文件夹共享,那么它只能被20个用户同时访问,但是通过“高级共享”选项中的设置,把A文件夹一另外一个名字出现,假如是B,那么现在B可以同时被很多用户访问了(具体多少需要你自己去定义了)
    现在我以一个文件夹12为例:
    我已经把文件夹12共享了
    image
    image
    点击“高级共享”:
    可以看到现在文件夹12,只能同时被20个用户访问,那么点击“添加”:
    image
    在共享名中随意填写,只要你记住进行了。点击“确定”:
    image
    此时可以看到,文件夹默认同时被20个用户访问,但是现在你可以修改了。我现在把它改为:30
    image
    看到了吧,我已经改为30了,嘿嘿,应用……
    现在,我在客户端看看我的共享文件夹吧:
    image
    这个是我在没有设置之前,其他用户访问我的共享时看到的共享文件夹
    image
    这个是我设置之后的,可以看到文件夹14。
    image
    这个是我在命令行下看到的……
    PS:你现在也可以去你共享文件夹所在的磁盘,你根本看不到这个文件夹14,但是如果你在共享里面就会看到的呢。除此之外,你也可以像平时对文件夹操作一样,对文件夹14就行权限的设置……
    对了,这个是我在虚拟机上弄的,因为没有那么的机子让我做实验,还希望各位午饭们帮我验证一下

    本文转自 烂泥行天下 51CTO博客,原文链接:http://blog.51cto.com/ilanni/580925
    展开全文
  • 简单解决XP共享连接数10限制

    千次阅读 2014-11-12 15:55:09
    所以就出现了一个问题,由于XP的共享连接数最多不能超过10(注:共享连接数非TCP/IP连接数),所以一旦连接的用户超过10,其它用户就没法打印东西了。  因为这个问题,公司好多用户开始抱怨投诉起来。这位朋友在网上...
  • XP共享连接数修改

    万次阅读 2011-03-21 11:37:00
    一、局域网打印共享10用户限制破解 连接打印机的电脑是装的XP系统或者2000系统,打印时有些机子总会显示连接数达到最大值,甚至连不上局域网!这是因为xp或2000最多 只能连接10台电脑。有人说上网...
  • ...修改SAMBA共享中的"max connections"。 如果连接数超过限制的时候,客户端将会接受到稍后重试的信息。 如下是一个样例。例子中的最大连接数为20 [training] path =
  • 终端命令: netstat -nalp|grep 8011|wc -l #查看8011端口的客户端连接数 ...网友共享的经验值: #修改文件 /etc/sysctl.conf ,在末尾追加这些文字 fs.file-max = 2097152  fs.nr_open = 2097152  net.core.s
  • AP用户限制及负载均衡设置

    千次阅读 2012-08-02 18:38:11
    由于WLAN工作原理的限制,各个无线客户端是共享带宽连接到AP上来的。因此如果某个AP上用户数太多,或流量太大,势必影响所有用户的正常使用,甚至造成AP负载过大而死机。 为了避免这个问题,下面我们以 NETGEAR...
  • 磁盘配额:NAS 用户 容量限制

    千次阅读 2015-12-17 17:16:41
     通过实现磁盘配额可以限制磁盘空间,当一个用户消耗太多的磁盘空间或磁盘分区被写满时给系统管理员报警。  在linux中我们只能使用超级管理员root用户进行磁盘配额的设置,并且磁盘配额是基于文件系统的,也就是...
  • Oracle修改用户profile属性

    千次阅读 2018-12-26 18:30:47
    更改属性 1、查询profile 2、更改session连接属性 用户Profile详解 一、Profile目的: 二、条件: 三、查看系统的默认PROFILE 四、创建 profile 的语法如下: 五、部分解释: 六、尝试创建一个混合型的...
  • 对于Windows NT(server)主机,如果系统帐户超过10个,一般能找出一两个弱口令帐户,所以帐户数量不要大于10个。 1.去掉所有的测试帐户、共享帐号和普通部门帐号等等 打开控制面板,依次点击“用户账户”→“用户...
  • 在linux中限制用户ftp访问权限

    千次阅读 2008-09-28 20:31:00
    客户端需要进行update时,需要ftp访问服务器的相应目录,为了限制用户在ftp后还能访问其他路径,需要进行相关限制。此文将进行简单介绍,共享,不足处请指出。1、环境:redhat linux企业版4。ftp为vsftp。被限制用户...
  • 3、cookie清除后,可以防止cookie共享数据的污染,如两个页面的cookie对应的path属性相同且变量名相同,就会导致修改一个页面的cookie参数,另一个页面的cookie参数也会变化,造成数据污染; 4、cookie清除后,...
  • linux系统中ulimit查看和更改系统限制ulimitulimit用于shell启动进程所占用的资源,可以用来设置系统的限制语法格式 ulimit [-acdfHlmnpsStvw] [size] 在/etc/security/limits.conf文件中定义 限制。 命令参数 ...
  • Oracle profile 用户资源限制 说明

    万次阅读 2011-01-27 02:00:00
    一 . 官网说明 ...Oracle recommends that you use the Database Resource Manager rather than this SQL statement to establish resource limits. ...如果用户试图执行超过其他的会话资源限制的操作,数据库放弃...
  • User 数据库名称 has already ...max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。解决方法:修改 MySQL 安装目录下 my.ini 或者 my.cnf 文件内
  • 前言本文是《限制用户多点并发登录》系列文章中的最后一篇,同时也是压轴篇。在这里,我要隆重向大家推荐第三方厂商ISDecisions出的UserLock。相信大家对它一定不会陌生。它的优势明显盖过前面我所介绍的工具和方法...
  • Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该...
  • 资源的限制类型2.内存限制3. CPU限制4. 为namespace设置资源限制 1.资源的限制类型 Kubernetes采用request和limit两种限制类型来对资源进行分配。 • request(资源需求):即运行Pod的节点必须满足运行Pod的最基本...
  • Windows中的共享文件和文件服务器

    万次阅读 2018-10-17 11:59:02
    目录 共享文件的设置 默认共享 ...大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。在很早期的Windows中(Windows2000以下),文件共享服务是利用TCP的1...
  • CSDN资源共享规范

    万次阅读 多人点赞 2019-12-11 09:49:29
    1、CSDN(包括CSDN网站与相应客户端、自媒体平台、主运营网站等)是为广大用户提供资源(包括但不限于文章、文档、音频、视频、图片、课程、软件、源代码等相关资源)共享的网络存储平台,为确保平台依法合规运营,...
  • 这次的需求是要共享一些大文件给到供应商去下载,公司之前是通过第三方网盘来实现的,但是拒反馈说网盘上传很慢,普通用户上传会有带宽限制,所以想自己弄一个文件共享服务器。 通常有自己的文件存储服务器的...
  • 共享内存

    千次阅读 2012-11-15 18:48:11
    简介  共享内存是一种非常重要且常用的进程间通信方式,相对于其它IPC机制,因其速度最快、效率最高,被广泛...System V IPC 为UNIX平台上的共享内存应用制定了统一的API标准,从而为在UNIX/Linux平台上进行跨
  • 当然这个系统还是有限制的。Potvin说,有一些高度敏感的代码——比如像Google的网页排名搜索算法(PageRank Search Algorithm)这种——是放在单独的代码仓库里的,只有部分被授权的员工才能看到。因为这些算法并不...
  • 软件时间限制的原理

    万次阅读 2016-05-22 15:58:54
    这类软件一般都有时间段的限制,例如试用30天等。当过了共享软件的试用期后,就不予运行。只有向软件作者付费注册之后才能得到一个无时间限制的注册版本。这种保护的实现方式大致如下。
  • 如何破解共享软件

    千次阅读 2010-01-14 10:32:00
    通常这类共享染件都会有使用时间上的限制,一旦过了试用期,就必须向软件开发者着册才能够继续使用。注册过程一般都是用户把自己的私人信息告诉给开发者,开发者再根据这些信息,按照一定的规则计算出注册码,用户...
  • Linux资源限制

    千次阅读 2018-07-14 09:04:39
    Linux 资源限制通过限制特定用户或程序的资源访问,也可以实现性能调优的目的。对于多用户的系统不限制资源本身可能就是一种不公平。1.通过 ulimit 是限制系统资源的一种途径,ulimit 支持 hard 和 soft 限制。Soft ...
  • v2ray 局域网代理 实现校园网共享

    千次阅读 2021-01-18 13:09:08
    大学校园里,不同校区限制措施也不同,我校比较low一点,运行了drcom客户端,似乎还会检验是否开了个人移动热点等方式来进行限制。在管控不严的校园内,一个寝室购买一个校园网账号并用无线路由器广播出去是常见的。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,272
精华内容 44,908
关键字:

共享用户限制更改超过20