NFS网络文件共享服务

2023-05-16

NFS用来做什么

以下说明节选自,老男孩相关书籍:

  • 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,如BBS产品的图片、附件、头像(注意网站BBS程序不要放NFS共享里),然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源。
  • NFS是当前互联网系统架构中最常用的数据存储服务之一,中小型网站公司应用频率更高,大公司或门户除了使用NFS外,还可能会使用更为复杂的分布式文件系统,比如Moosefs(MFS)、GlusterFS、FastDFS等,阿里云等公有云平台的NAS就是云化后的NFS服务应用。
  • NFS作为所有前端Web服务的共享存储,存储内容一般包括网站用户上传的图片、附件、头像等。注意, 网站的程序代码不要放NFS共享里,因为网站程序是开发运维人员统一发布的,不存在发布延迟问题,直接批量发布到Web节点提供访问比共享到NFS里访问效率更高。

NFS系统原理简介

  • NFS在传输数据时使用的端口会随机选择,NFS客户端发现NFS服务器端传输端口是通过RPC(Remote Procedure
    Call,中文意思远程过程调用)协议/服务来实现。
  • NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端发出请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以连接到正确的NFS端口上去,达到实现数据传输、交互数据目的。这个RPC服务类似NFS服务器端和NFS客户端之间的一个中介。
  • RPC服务又是如何知道每个NFS端口:当NFS服务器端启动服务时会随机取用若干端口,并主动向RPC服务注册取用的相关端口及功能信息,如此一来,RPC服务就知道NFS每个端口对应的NFS功能了,然后RPC服务使用固定111端口来监听NFS客户端提交的请求,并将正确的NFS端口信息回复给请求的NFS客户端,这样一来,NFS客户端就可以与NFS服务器端进行数据传输。
  • 启动NFS Server之前,首先要启动RPC服务(CentOS6/7环境下为rpcbind服务,下同)否则NFS Server就无法向RPC服务注册了。另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会丢失,因此,此时RPC服务管理的NFS程序也需要重新启动以重新向RPC注册。要特别注意,修改NFS配置文件后是不需要重启NFS的,直接在命令行执行systemctl reload nfs或exportfs -rv即可使修改的/etc/exports生效。

NFS服务端部署环境准备

这里使用CentOS Linux release 7.8.2003 (Core)

NFS服务器端的安装启动

  • 要部署NFS服务,需要安装以下软件包:使用yum安装即可
    ❑ nfs-utils:NFS服务的主程序,包括rpc.nfsd、rpc.mountd这两个daemons和相关文档说明,以及执行命令文件等。
    ❑ rpcbind:CentOS6/7环境下RPC主程序。NFS可视为一个RPC程序,在启动任何一个RPC程序之前,需要做好端口和功能的映射工作,这个映射工作就是由rpcbind服务来完成的。因此,在提供NFS服务之前必须先启动rpcbind服务才行。

启动NFS相关服务

  • 启动rpcbind服务
    在这里插入图片描述
    同时使用 systemctl enable rpcbind 命令设置rpcbind服务自启动
  • 启动NFS服务
    启动NFS服务的命令: systemctl start nfs
    设置自启动: systemctl enable nfs

NFS服务常见进程详解说明

  • 运行NFS服务默认需要启动的服务或进程有NFS daemon、NFS
    mountd(rpc.mountd)、rpc.statd、rpc.idmapd等。可以通过执行如下命令查看启动NFS后系统中运行的NFS相关进程: ps -ef | egrep “rpc|nfs”

  • NFS服务的主要任务是共享数据,而数据的共享离不开权限问题。所以NFS服务器启动时最少需要两个不同的进程,一个是管理NFS客户端是否能够登录的rpc.nfsd主进程,另一个管理NFS客户端是否能够取得对应权限的rpc.mountd进程。如果还要管理磁盘配额,则NFS还需要加载rpc.rquotad进程。
    在这里插入图片描述
    对以上进程查看,均可以执行“man进程名”命令,如“manrpc.idmapd”。

配置NFS服务器端

  • NFS服务的默认配置文件路径为/etc/exports,并且默认该文件是空的。提示:NFS默认配置文件/etc/exports其实是存在的,但是没有内容,需要用户自行配置。
  • exports配置文件格式
    /etc/exports文件的两种格式如下:
    NFS共享目录NFS客户端地址1(参1,参2….)客户端地址2(参1,参2….)
    NFS共享目录NFS客户端地址(参1,参2….)

    查看exports语法文件格式帮助的方法为:执行man exports命令,然后切换到文件结尾,可以快速看如下样例格式
    在这里插入图片描述
    上述各列参数的含义如下:
    1)NFS共享目录:为NFS服务器端要共享的实际目录,要用绝对路径,如(/data)。注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端的用户(nfsnobody)读写。
    2)NFS客户端地址:为NFS服务器端授权的可访问共享目录的NFS客户端地址,可以为单独的IP地址或主机名、域名等,也可以为整个网段地址,还可以用“*”来匹配所有客户端服务器。指定NFS客户端地址的配置详细说明如下表

在这里插入图片描述
3)权限参数集:对授权的NFS客户端的访问权限设置, NFS配置权限设置常用参数说明:如下
更详细的说明应使用man命令查看在这里插入图片描述

  • 常见的NFS exports配置实例
    在这里插入图片描述
    以“配置例一”为例进行说明,说明如下:
    ❑ /data为要共享的NFS服务器端的目录,注意,被共享的目录一定要用绝对路径。
    ❑ 172.16.1.0/24表示允许NFS客户端访问共享目录的网段范围。24表示255.255.255.0。
    ❑ (rw, sync) rw表示允许读写,sync表示数据同步写入到NFS服务器端的硬盘中。
    ❑ 也可用通配符*替换IP地址,表示允许所有主机,也可以写成10.0.0.*的形式。

  • 配置好NFS服务后,通过cat /var/lib/nfs/etab命令可以看到NFS配置的参数以及系统默认自带的参数

[root@nfs ~]# cat /var/lib/nfs/etab 
/data	192.168.124.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
#可以结合以上的图表查看参数的具体说明

NFS服务配置案例实践

实例:共享/data目录给192.168.3.0/24整个网段的主机,可读写。

  • 在NFS Server端执行的操作
    1)启动rpcbind及NFS服务,然后加入开机自启动
    2)创建需要共享的目录并授权(工作中这里的/data应该是已存在的目录):

    [root@nfs ~]# mkdir -p /data   #创建共享目录
    [root@nfs ~]# chown -R nfsnobody.nfsnobody /data  #授权给nfsnobody用户和nfsnobody组管理
    #这里要把共享目录的权限分配和nfs的默认用户,是因为不这样设置nfs客户端访问时无法通过nfs本地共享目录权限写入数据。
    

    3)配置NFS服务配置文件,并在本地查看挂载信息情况:

    [root@nfs ~]# cat /etc/exports
    #shared /data by test for students
    /data 192.168.3.0/24(rw,sync)
    [root@nfs ~]# systemctl reload nfs      #平滑重启,或者说重载
    [root@nfs ~]# showmount -e localhost    #查看看本地挂载
    Export list for localhost:
    /data 192.168.3.0/24
    [root@nfs ~]# 
    

    4)把本地服务器端作为客户端进行挂载测试,执行的命令和结果如下:

    [root@nfs ~]# mount -t nfs 192.168.3.96:/data /mnt
    [root@nfs ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 475M     0  475M    0% /dev
    tmpfs                    487M     0  487M    0% /dev/shm
    tmpfs                    487M   14M  473M    3% /run
    tmpfs                    487M     0  487M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  2.3G   15G   14% /
    /dev/sda1               1014M  137M  878M   14% /boot
    tmpfs                     98M     0   98M    0% /run/user/0
    192.168.3.96:/data        17G  2.3G   15G   14% /mnt
    [root@nfs ~]# 
    
    

    根据提示挂载是成功的,至此,NFS服务器端配置完毕。

  • 在此过程中,需要注意以下两点:
    1)上文中的配置/oldboy 172.16.1.0/24(rw, sync),其中“24”和“(”之间不能有空格。
    2)修改/etc/exports后,需执行systemctl reload nfs或exportfs -r重新加载配置,但不要重启NFS。尤其是在生产环境中。

在NFS Client端执行的操作

  • 在所有的NFS Client上执行的操作都是相同的,具体操作如下:
    1)检查CentOS7.8系统环境
    2)安装客户端软件rpcbind:

    [root@wen01 ~]# yum install rpcbind -y 
    [root@wen01 ~]# rpm -qa rpcbind
    rpcbind-0.2.0-49.el7.x86_64
    

    为了使用showmount命令功能,所有客户端最好都要安装NFS软件,不安装可以以挂载。

    [root@wen01 ~]# rpm -qa nfs-utils
    nfs-utils-1.3.0-0.68.el7.x86_64
    [root@wen01 ~]# 
    

    3)启动RPC服务(注意,因为是客户端,所以无须启动NFS服务)。
    systemctl start rpcbind

    4)挂载NFS共享目录/data

    [root@wen01 ~]# showmount -e 192.168.3.96     #查看挂载权限
    Export list for 192.168.3.96:
    /data 192.168.3.0/24
    [root@wen01 ~]# mount -t nfs 192.168.3.96:/data /mnt   #挂载
    
    

    5)从客户端Web01测试读写NFS服务器端数据。

    	[root@wen01 ~]# cd /mnt/
    	[root@wen01 mnt]# ll			#查看挂载目录
    	总用量 4
    	-rw-r--r-- 1 root root  0 514 15:49 1.txt
    	-rw-r--r-- 1 root root  0 514 15:49 2.txt
    	-rw-r--r-- 1 root root  0 514 15:49 3.txt
    	-rw-r--r-- 1 root root  0 514 15:49 4.txt
    	-rw-r--r-- 1 root root  0 514 15:49 5.txt
    	-rw-r--r-- 1 root root 36 514 16:02 test.txt
    	[root@wen01 mnt]# touch test1.txt   #查看写权限
    	[root@wen01 mnt]# ll
    	总用量 4
    	-rw-r--r-- 1 nfsnobody nfsnobody  0 514 15:49 1.txt
    	-rw-r--r-- 1 nfsnobody nfsnobody  0 514 15:49 2.txt
    	-rw-r--r-- 1 nfsnobody nfsnobody  0 514 15:49 3.txt
    	-rw-r--r-- 1 nfsnobody nfsnobody  0 514 15:49 4.txt
    	-rw-r--r-- 1 nfsnobody nfsnobody  0 514 15:49 5.txt
    	-rw-r--r-- 1 nfsnobody nfsnobody  0 529 10:48 test1.txt
    	-rw-r--r-- 1 nfsnobody nfsnobody 36 514 16:02 test.txt
    

    用户和组都是nfsnobody默认所有的客户端读写都会被压缩成UID为65534的nfsnobody用户和组。

常用的重点NFS服务文件或命令。

在这里插入图片描述

NFS客户端挂载排错

  • 当NFS客户端挂载出现故障时,首先把本地服务器端作为客户端进行挂载测试。
    提示:这步主要检查服务器端的NFS服务自身是不是正常。
  • 如果环境准备不当可能会遇到如下两个报错。
    第一个报错在这里插入图片描述
    这个报错往往是由防火墙未关闭也未正确设置导致的,检查办法如下:
    1)从客户端ping NFS服务端IP,目的是看物理链路是否通畅。
    2)从客户端telnet服务器端IP端口检查,用于测试NFS服务(RPC服务)是否通畅。
    第二个报错
    在这里插入图片描述
    解答:“RPC:Program not registered”提示很清楚了,是服务器端RPC服务和NFS服务存在启动顺序问题,即需要先启动rpcbind,后启动NFS。

NFS客户端挂载命令参数说明

  • 在NFS服务器端可以通过cat/var/lib/nfs/etab查看NFS服务器端配置参数的细节。在NFS客户端可以通过cat/proc/mounts查看mount的挂载参数细节。
    mount命令的-o选项后面可以接的参数,注意,有些选项只有出现在/etc/fstab里才有效,下面这些选项可以应用在绝大多数文件系统上,但是sync仅适合ext2、ext3、fat、vfat和ufs等文件系统。
    ❑ async:涉及文件系统I/O的操作都是异步处理,即不会同步写入磁盘,此参数会提高性能,但会降低数据安全性。一般情况下,生产环境不推荐使用。除非是在对性能要求很高,对数据可靠性不要求的场合。※
    ❑ sync:该参数和async相反。有I/O操作时都会同步处理I/O,即把数据同步写入硬盘。此参数会牺牲一点I/O性能,但是,换来的是断电后数据的安全性。
    ❑ atime:在每一次数据访问时,会同步更新访问文件的inode时间戳,是默认选项。
    ❑ ro:以只读的方式挂载一个文件系统。
    ❑ rw:以可写的方式挂载一个文件系统。※
    ❑ auto:能够被自动挂载通过-a选项。
    ❑ noauto:不会自动挂载文件系统。
    ❑ defaults :这是fstab里第4列挂载参数的默认值,包括rw、suid、dev、exec、auto、nouser、async,默认情况下大部分参数都是默认值。
    ❑ exec:允许文件系统执行二进制文件,取消这个参数,可以提升系统安全性。
    ❑ noexec:在挂载的文件系统中不允许直接执行任何二进制的程序,注意,仅对二进制程序有效,即使设置了noexec、shell,php程序还是可以执行的。※
    ❑ noatime:访问文件时不更新文件的inode时间戳,高并发环境下推荐显式应用该选项,可以提高系统I/O性能。※
    ❑ nodiratime:不更新文件系统上的directory inode时间戳,高并发环境下推荐显式应用该选项,可以提高系统I/O性能。※
    ❑ nosuid:不允许特殊权限suid和sgid位生效,以提升安全性。※
    ❑ suid:允许suid和sgid位生效。
    ❑ nouser:禁止一个普通用户挂载该文件系统,这是默认挂载时的默认选项。
    ❑ remount:尝试重新挂载一个已经挂载了的文件系统,通常被用来改变一个文件系统的挂载标志,使得一个只读文件系统变得可写,这个动作不会改变设备或者挂载点。当系统故障进入single或rescue模式修复系统时,会发现根文件系统经常会变成只读文件系统,不允许修改,此时该命令就派上用场了。具体命令为:mount -o remount, rw/,表示将根文件系统重新挂载使其可写。single或rescue模式修复系统时这个命令十分重要。※
    ❑ dirsync:目录更新时同步写入磁盘。
    其中,标有※的为性能优化重要选项,一般情况下,安全参数和性能参数是对立的,即越安全,性能就越差。

NFS客户端挂载优化

  • 于mount挂载优化问题(有些参数也适合其他文件系统),一般来说要适当加挂载参数,但是,最好是先做好测试,用数据来说话,才能更好地确定到底是挂载还是不挂载。
  • 有关系统安全挂载参数选项
    工作场景中,一般来说,NFS服务器共享的只是普通静态数据(图片、附件、视频),不需要执行suid、exec等权限,挂载的这个文件系统只能作为数据存取之用,无法执行程序,对于客户端来讲增加了安全性。
    在这里插入图片描述
    通过mount -o指定挂载参数和在/etc/fstab里指定挂载参数的效果是一样的。
  • 挂载性能优化参数选项
    NFS网络文件系统优化挂载的参数建议。在这里插入图片描述
    这里只是参考书籍中的建议,还应该具体问题具体分析。
  • NFS内核优化建议
    下面是优化选项说明。
    ❑ /proc/sys/net/core/rmem_default:该文件指定了接收套接字缓冲区大小的默认值(以字节为单位),默认设置:124928。
    ❑ /proc/sys/net/core/rmem_max:该文件指定了接收套接字缓冲区大小的最大值(以字节为单位),默认设置:124928。
    ❑ /proc/sys/net/core/wmem_default:该文件指定了发送套接字缓冲区大小的默认值(以字节为单位),默认设置:124928。
    ❑ /proc/sys/net/core/wmem_max:该文件指定了发送套接字缓冲区大小的最大值(以字节为单位),默认设置:124928。上述文件对应的具体内核优化命令如下:
    在这里插入图片描述

生产场景下NFS共享存储优化小结

1)硬件:SAS/SSD磁盘,购买多个,硬件RAID,制作RAID5或RAID10。网卡吞吐量要大,至少千兆(多块Bond)。
2)NFS服务器端指定特定UID/GID配置:
在这里插入图片描述
这里使用cetnos7.8版本系统搭建nfs的时候UID和GID默认就是65535。
3)NFS客户端挂载优化配置命令如下:
在这里插入图片描述
4)对NFS服务的所有服务器内核进行优化时,执行如下命令:
在这里插入图片描述
执行sysctl -p生效。
5)如果卸载的时候提示“umount: /mnt: device is busy”,需要退出挂载目录再进行卸载,如果是NFS Server宕机了,则需要强制卸载,可执行umount -lf /mnt。
6)大型网站NFS网络文件系统的替代软件为分布式文件系统MooseFS、GlusterFS、FastDFS等。(这里的相关内容还没有接触过,有待学习)

NFS客户端开机自启动挂载

配置客户端mount挂载命令使挂载开机自动执行,这里有如下两种方法:

  1. 将挂载命令放在/etc/rc.local里。
    [root@backup ~]# cat /etc/rc.local 
    #!/bin/bash
    # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    #
    # It is highly advisable to create own systemd services or udev rules
    # to run scripts during boot instead of using this file.
    #
    # In contrast to previous versions due to parallel execution during boot
    # this script will NOT be run after all other services.
    #
    # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    # that this script will be executed during boot.
    
    touch /var/lock/subsys/local
    /bin/mount -t nfs 192.168.3.96:/data /mnt
    [root@backup ~]# ^C
    
    
    缺点:可能偶尔开机挂载不上,工作中除了开机自启动配置,还要对是否挂载进行监控。
  2. 将挂载命令放在/etc/fstab里。
    NFS网络文件系统最好不要放到fstab里实现开机挂载。

NFS服务端宕机后给NFS客户端带来的问题

  • 多台客户机挂载一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其是NFS服务器端出问题后,所有NFS客户端都处于挂掉状态(测试环境可使用autofs自动挂载解决,正式环境可修复NFS服务或强制卸载)。NFS服务器宕机后,在客户端访问挂载点会处于挂掉状态,甚至早期系统执行Ctrl+C都无法退出,CentOS7客户端还可能无法重启,这个问题的解决方法有以下几种:1)在cat
    /proc/mounts找到挂载点,然后执行umount -lf
    /data方式卸载即可。2)在mount挂载时增加soft或者intr,不让客户端持续呼叫NFS服务器。3)如果是fstab里实现的挂载则可在第4列defaults后面增加soft或者intr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NFS网络文件共享服务 的相关文章

  • 辛勤劳作

    本文只有在12月27日可以学习到 我对敬业的体会是 xff1a 正在从事的工作就是自己的生命 xff0c 它意味着每周7天 xff0c 每年52周一心扑在上面 写下上面这句话 xff0c 我的泪水差一点儿就涌了出来 14年的寿险生涯 xff
  • RocketMQ

    1 主题中存在多个队列 xff0c 生产者向主题中指定的队列发送消息 2 在集群模式下 xff0c 一个消费者集群共同消费一个主题中的多个队列 xff0c 但一个队列只会被一个消费者消费 在广播模式下 xff0c 会被订阅主题的所有消费者消
  • 记一次Gradle搭建多模块项目遇到的问题

    前言 最开始 xff0c 我创建了一个空的项目 xff0c 并在该项目下依次创建了3个模块 但是我发现 xff0c 这几个模块引入的依赖绝大多数都是相同的 于是 xff0c 我灵光一闪 xff08 其实是在最初构建项目时的没想到 xff09
  • springboot 项目访问controller没有进入拦截器

    在项目中新写了一个校验token是否存在的拦截器之后 xff0c 编译和启动都没有问题 直到访问方法的时候发现并没有进入这个拦截器 后来发现是因为springboot在启动之后 xff0c 启动类只会扫描启动类所在的包下的方法 解决方法就是
  • leetcode 1170. 比较字符串最小字母出现频次(C++)

    我们来定义一个函数 f s xff0c 其中传入参数 s 是一个非空字符串 xff1b 该函数的功能是统计 s 中 xff08 按字典序比较 xff09 最小字母的出现频次 例如 xff0c 若 s 61 34 dcce 34 xff0c
  • maven私库nexus2.11.4迁移升级到nexus3.12.0

    https www cnblogs com liangyou666 p 9439755 html nexus简介 nexus是一个强大的maven仓库管理器 它极大的简化了本地内部仓库的维护和外部仓库的访问 nexus是一套开箱即用的系统不
  • Linux安装JDK8详细图文教程

    第一步 获取JDK文件 JDK下载包 xff1a 直接进入 如果跳转登录页面 xff0c 注册一个账号登录即可 登录过后文件就下载完成 第二步 上传JDK到服务器 1 创建JDK目录 span class token function mk
  • 购物商城shopping连载(11)

    订单模块类创建及配置 购物完成之后 xff0c 提交订单 xff0c 生成一个订单 订单表和商品的关系 xff1a 订单和商品的关系是多对多 xff0c 一个订单可以有多个商品 xff0c 一个商品可以属于多个订单 如果是多对多的关系 xf
  • CSS面试题:20道含答案和代码示例的练习题

    如何水平居中一个元素 xff1f 答案 xff1a 可以使用text align属性设置父元素的文本对齐方式为center xff0c 也可以使用margin属性设置元素的左右margin为auto 如何垂直居中一个元素 xff1f 答案
  • Ubuntu GNOME去除顶栏和窗口标题栏方法(亲测可用)

    一 环境 Ubuntu16 04 43 gnome3 gome shell 3 18 5 二 简介 因项目需要 xff0c 软件在 Ubuntu 系统中运行 xff0c 并且全屏显示 而在 Ubuntu 系统中 xff0c 侧边栏的自动隐藏
  • linux 配置FTP多个虚拟用户,私人目录+共享目录

    需求 xff1a 公司多个部门 xff0c 行政 xff0c 财务 xff0c 人事 xff0c 运营 xff0c 每个部门都能上传下载文件 xff0c pub目录是共享目录 xff0c 每个部门都可以上传下载 xff0c 但是无法删除 每
  • Java8新特性详解

    陈老老老板 说明 xff1a 新的专栏 xff0c 本专栏专门讲Java8新特性 xff0c 把平时遇到的问题与Java8的写法进行总结 xff0c 需要注意的地方都标红了 xff0c 一起加油 本文是介绍Java8新特性与常用方法 xff
  • java 基础 matches()方法的作用

    java lang包中的String类 xff0c java util regex包中的Pattern xff0c Matcher类中都有matches 方法 都与正则表达式有关 下面我分别举例 xff1a xff08 字符串 xff1a
  • 什么是建造者模式?

    为什么会有这个模式 xff1f 很多时候我们会构建非常复杂的类 xff0c 内部初始化构成需要进行很多复杂交互操作 xff0c 比如需要去数据库查询数据后作为属性初始值 xff0c 或者说我们想控制它的内部初始化的过程 xff0c 将构建过
  • Android Stdio引入kotlin-android-extensions插件

    在Activity中使用Toast lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt LinearLayout xmlns android 61 34 http schema
  • 微信小程序开发(一)

    微信小程序开发 目录 微信小程序开发 一 微信小程序开发 二 五 让小程序连接树莓派 六 xff1a 小程序控制面板设计 七 xff1a 树莓派如何解析小程序的信息 八 xff1a 树莓派如何回信息给小程序 九 xff1a 树莓派与微信小程
  • pancakeswap薄饼添加流动性后实现永久锁仓

    pancakeswap xff08 薄饼 xff09 添加流动性后永久锁仓的目的是彻底放弃对资金池的控制权限 xff0c 永久不能撤池 主要针对项目方在首次完成流动性的添加后 xff0c 永久锁仓 这样就放弃了对流动性的所有权 xff0c
  • GEO芯片数据探针id转化

    以数据集GSE89657为例 xff0c 芯片平台是GPL6244 1 下载表达谱数据 GEO网站手动下载表达谱数据 xff0c 解压 xff0c 去注释 gunzip GSE89657 series matrix txt gz cat G
  • R语言正态分布

    统计分布每一种分布有四个函数 xff1a d density xff08 密度函数 xff09 xff0c p 分布函数 xff0c q 分位数函数 xff0c r 随机数函数 正态曲线呈钟型 xff0c 两头低 xff0c 中间高 xff
  • R语言均匀分布

    在R中 xff0c unif是用来进行均匀分布分析的 xff0c 在其前面加上不同的前缀表示不同的函数 xff0c 各函数的使用格式如下所示 xff1a dunif x min 61 0 max 61 1 log 61 FALSE 分布密度

随机推荐

  • 转录本counts,FPKM,TPM相互转化

    FPKM Fragments Per Kilobase of exon model per Million mapped fragments 每千个碱基的转录每百万映射读取的fragments FPKM xff1a Fragments pe
  • R语言泊松(Poisson)分布

    Poisson分布 xff0c 是一种统计与概率学里常见到的离散概率分布 xff0c 由法国数学家西莫恩 德尼 泊松 xff08 Sim on Denis Poisson xff09 在1838年时发表 泊松分布的参数 是单位时间 或单位面
  • windows软件窗口或者对话框太大超出屏幕解决办法

    软件窗口太大显示不全 问题 xff1a 软件窗口或对话框太大 xff0c 最大化也无法显示全部 xff0c 拖动标题栏移动到屏幕顶部 xff0c 底部也显示不出来 具体见下面两张图片 解决方法 xff1a 使用第三方工具 xff1a 窗口移
  • R语言卡方(chisq)分布

    若n个相互独立的随机变量 xff0c xff0c n xff0c 均服从标准正态分布 xff08 也称独立同分布于标准正态分布 xff09 xff0c 则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量 xff0c 其分布规律称为
  • liftOver进行基因组坐标转换

    Liftover是UCSC中用于基因组版本之间转换的一个工具 xff0c 既可以做某一物种内基因组版本的转换 xff0c 还可以做物种间基因组版本的转换 1 网页转换 http genome ucsc edu cgi bin hgLiftO
  • R语言ggraph包绘制环状网络图

    ggraph 是 ggplot2 的扩展 xff0c 用于绘制关系型数据结构 xff0c 如网络 图和树等 ggraph 包含 3 个核心概念 xff1a layout xff1a 定义图的布局 xff0c 如蜂巢图 圆堆积图等 nodes
  • 本地安装运行HiC数据可视化容器higlass-docker

    HiGlass xff0c 这是一个基于web技术的开源可视化工具 xff0c 它提供了一个丰富的界面 xff0c 用于快速 多重和多尺度导航2D基因组地图以及1D基因组轨迹 xff0c 允许用户组合各种数据类型 xff0c 同步多个可视化
  • R语言p值校正函数p.adjust

    调整方法包括Bonferroni校正 xff08 Bonferrroni xff09 xff0c 其中p值乘以比较次数 Holm xff08 1979 xff09 xff08 Holm xff09 Hochberg xff08 1988 x
  • R语言中Lasso Cox 筛选生存相关特征

    构建预后模型时 xff0c 通常先进行单因素Cox分析筛选出关联的变量 xff0c 再通过Lasso Cox 筛选生存相关特征 xff08 排除多重共线性的特征 xff09 xff0c 最后构建Cox多因素回归模型分析预后影响 Lasso
  • R包WGCNA分析代码

    WGCNA xff08 加权基因共表达网络分析 xff09 R软件包 xff0c 用于执行加权相关网络分析 xff0c 包括网络构建 模块检测 基因选择 拓扑结构计算 数据模拟 可视化以及与外部软件的接口等功能 WGCNA旨在寻找协同表达的
  • 单样本GSEA分析肿瘤组织免疫浸润

    单样本GSEA分析即ssGSEA xff0c 可以计算肿瘤组织中免疫细胞的比例 xff0c 从而量化免疫浸润 ssGSEA可以用R 当中的GSVA包来计算 1 下载 xff0c 读入免疫细胞特征基因集 http cis hku hk TIS
  • 如何进行服务器选型

    1 服务器要运行什么应用 Web服务器对硬件要求不高 xff0c 一般的硬件配置即可满足需求 xff0c 如果后期Web服务访问量上升 xff0c 只需要新增同等配置的服务器 xff0c 通过负载均衡进行集群 xff0c 即可实现Web服务
  • 约瑟夫环问题总结

    问题简介 xff1a 约瑟夫环 xff08 约瑟夫问题 xff09 是一个数学的应用问题 xff1a 已知n个人 xff08 以编号1 xff0c 2 xff0c 3 n分别表示 xff09 围坐在一张圆桌周围 从编号为k的人开始报数 xf
  • 文件夹重命名(或移动)却找不到指定该文件类型咋办?

    文件夹重命名 或移动 却找不到指定该文件类型咋办 xff1f 方法一 xff0c 导入FolderDescriptions reg 64位系统导入 xff1a FolderDescriptions x64 reg 32位系统导入 xff1a
  • ubuntu 18.04忘记登录密码的破解方法

    参考 xff1a https www linuxrumen com rmxx 889 html
  • Android 解决Toast不显示

    没有调用show方法 例如 xff1a Toast makeText MainActivity this 休眠 Toast LENGTH SHORT show
  • LwIP之TCP Server多client连接发送和接收Demo

    msh调用时对端口进行监听 xff0c 监听到有客户端连接时 xff0c 创建新的线程进行连接 监听时设置最大连接数为4 xff0c 使用SocketTool工具模拟client连接 xff0c 实际效果如下 span class toke
  • Manjaro配置攻略

    1 概述 本文主要讲述了新安装的Manjaro一些常用的配置 xff0c 包括源 常用软件 快捷键 终端以及一些效率工具的配置 2 pacman源 首先是pacman源的选择 xff1a span class token function
  • 真 ● 禁秘技 ● 奥义 ● 终端美化

    1 概述 作为一个程序员 xff0c 可以没钱 xff0c 没车 xff0c 没房 xff0c 没老婆 xff0c 没女朋友 但是 xff0c 一定要有一个漂亮骚气的终端 没错 xff0c 大骚特骚 说什么大实话 先来看看原生的终端 xff
  • NFS网络文件共享服务

    NFS用来做什么 以下说明节选自 xff0c 老男孩相关书籍 xff1a 在企业集群架构的工作场景中 xff0c NFS网络文件系统一般被用来存储共享视频 图片 附件等静态资源文件 xff0c 通常网站用户上传的文件都会放到NFS共享里 x