中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

中國(guó)招標(biāo)信息網(wǎng)惠州seo推廣優(yōu)化

中國(guó)招標(biāo)信息網(wǎng),惠州seo推廣優(yōu)化,貴州網(wǎng)站開(kāi)發(fā)哪家好,代做吧機(jī)械網(wǎng)站1.環(huán)境說(shuō)明: 系統(tǒng)主機(jī)名IP地址內(nèi)存添加共享磁盤(pán)大小Centos7.9gpfs1192.168.10.1012G20GCentos7.9gpfs2192.168.10.1022G20G 2.環(huán)境配置: 配置網(wǎng)路IP地址: 修改網(wǎng)卡會(huì)話: nmcli connection modify ipv4.method manual ipv4.addre…

1.環(huán)境說(shuō)明:

系統(tǒng)主機(jī)名IP地址內(nèi)存添加共享磁盤(pán)大小
Centos7.9gpfs1192.168.10.1012G20G
Centos7.9gpfs2192.168.10.1022G20G

2.環(huán)境配置:

  • 配置網(wǎng)路IP地址:

    • 修改網(wǎng)卡會(huì)話:

      nmcli connection modify ipv4.method manual ipv4.addresses '192.168.10.101/24' \ipv4.gateway 192.168.10.2 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli conection up ens33

    • (可選)在網(wǎng)卡上添加會(huì)話:

      nmcli connection add type ethernet con-name ens38 ifname ens38 \ipv4.method manual ipv4.addresses '192.168.10.152/24' \ipv4.gateway 192.168.10.2 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli connection up ens38

  • 關(guān)閉防火墻和selinux:

    [root@localhost ~]# systemctl stop firewalld;systemctl disable firewalld
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    [root@localhost ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    [root@localhost ~]# reboot
    ?
    連接斷開(kāi)
    連接主機(jī)...
    連接主機(jī)成功
    Last failed login: Wed Jul 12 19:43:52 EDT 2023 on tty1
    There was 1 failed login attempt since the last successful login.
    Last login: Wed Jul 12 11:53:49 2023 from 192.168.178.1
    [root@localhost ~]# getenforce
    Disabled

3.配置yum源:

  • 配置本地yum源:

    mkdir /mnt/cdrom;mount /dev/cdrom /mnt/cdrom
    cat << eof >> /etc/fstab
    /dev/cdrom /mnt/cdrom iso9660 defaults  0  0
    eof
    cat << eof > /etc/yum.repos.d/centos-local.repo
    [centos7.9]
    name=centos7.9
    baseurl=file:///mnt/cdrom
    enabled=1
    gpgcheck=0
    eof
    yum clean all && yum repolist

  • 配置擴(kuò)展源:

    yum install epel-release -y
    yum clean all && yum repolist

  • (可選)配置遠(yuǎn)程阿里源:

    yum install -y wget && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum clean all && yum repolist

4.安裝必要工具:

yum install -y bash-completion vim net-tools tree psmisc lrzsz dos2unix

5.配置域名映射:

cat << eof >> /etc/hosts
192.168.10.101 node1
192.168.10.102 node2
192.168.10.111 client-side
eof

6.ssh免密登錄:

# 自己生成的公鑰也要給自己添加上
ssh-keygen -t rsa -b 1024
ssh-copy-id -i ~/.ssh/id_rsa.pub root@[IP地址]

7.配置chrony時(shí)間服務(wù)器:

  • 兩個(gè)節(jié)點(diǎn)都并且連接到阿里云時(shí)間服務(wù)器,安裝:

    [root@node1 ~]# yum -y install chrony
  • 啟動(dòng)進(jìn)程:

    [root@node1 ~]# systemctl enable chronyd;systemctl start chronyd
  • node1節(jié)點(diǎn),修改配置文件/etc/chrony.conf

    [root@node1 ~]# sed -i '/^server [0-9]/d' /etc/chrony.conf
    [root@node1 ~]# sed -i '2a\server 192.168.10.101 iburst\' /etc/chrony.conf
    [root@node1 ~]# sed -i 's/#allow 192.168.0.0\/16/allow 192.168.10.0\/24/' /etc/chrony.conf
    [root@node1 ~]# sed -i 's/#local stratum 10/local stratum 10/' /etc/chrony.conf
  • node2節(jié)點(diǎn),修改配置文件/etc/chrony.conf

    [root@node2 ~]# sed -i '/^server [0-9]/d' /etc/chrony.conf
    [root@node2 ~]# sed -i '2a\server 192.168.10.101 iburst\' /etc/chrony.conf
  • 重啟服務(wù):

    [root@node1 ~]# systemctl restart chronyd
  • 查看時(shí)間同步狀態(tài):

    [root@node1 ~]# timedatectl statusLocal time: 三 2023-07-26 23:02:14 EDTUniversal time: 四 2023-07-27 03:02:14 UTCRTC time: 四 2023-07-27 03:02:14Time zone: America/New_York (EDT, -0400)NTP enabled: yes
    NTP synchronized: yesRTC in local TZ: noDST active: yesLast DST change: DST began at日 2023-03-12 01:59:59 EST日 2023-03-12 03:00:00 EDTNext DST change: DST ends (the clock jumps one hour backwards) at日 2023-11-05 01:59:59 EDT日 2023-11-05 01:00:00 EST
  • 開(kāi)啟網(wǎng)絡(luò)時(shí)間同步:

    [root@node1 ~]# timedatectl set-ntp true
  • 查看具體的同步信息:

    [root@node1 ~]# chronyc sources -v
    210 Number of sources = 1
    ?.-- Source mode ?'^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
    | / ? '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
    || ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .- xxxx [ yyyy ] +/- zzzz
    || ? ?  Reachability register (octal) -. ? ? ? ? ? |  xxxx = adjusted offset,
    || ? ?  Log2(Polling interval) --. ? ?  | ? ? ? ?  |  yyyy = measured offset,
    || ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  \ ? ? | ? ? ? ?  |  zzzz = estimated error.
    || ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ?  | ? ? ? ? ? \
    MS Name/IP address ? ? ? ? Stratum Poll Reach LastRx Last sample ? ? ? ? ? ? ? 
    ===============================================================================
    ^* 203.107.6.88 ? ? ? ? ? ? ? ? ?2 ? 6 ? ?17 ? ? 2 ?+2105us[+1914us] +/- ? 20ms

8.配置共享硬盤(pán):

  • 前提:兩臺(tái)虛擬機(jī)沒(méi)有拍攝快照

  • 在mds001主機(jī)中:

    • 添加五塊5G的硬盤(pán)

      SCSI > 創(chuàng)建新虛擬磁盤(pán) > 指定磁盤(pán)容量 ,立即分配所有磁盤(pán)空間,將虛擬磁盤(pán)存儲(chǔ)為單個(gè)文件

    • 修改磁盤(pán)屬性:

  • 在mds002主機(jī)中:

    • 添加5塊5G的硬盤(pán)

      SCSI > 使用已有的虛擬磁盤(pán) > 指定磁盤(pán)容量 ,立即分配所有磁盤(pán)空間,將虛擬磁盤(pán)存儲(chǔ)為單個(gè)文件 > 選擇mds001主機(jī)新添加的磁盤(pán)文件

    • 修改磁盤(pán)屬性:

  • 在mds001和mds002的虛擬機(jī)目錄下,找個(gè)后綴名為vmx的文件,在文件末尾添加一下內(nèi)容:

    scsi1.sharedBus = "virtual"
    disk.locking = "false"
    diskLib.dataCacheMaxSize = "0"
    diskLib.dataCacheMaxReadAheadSize = "0"
    diskLib.dataCacheMinReadAheadSize = "0"
    diskLib.dataCachePageSize = "4096"
    diskLib.maxUnsyncedWrites = "0"
    disk.EnableUUID = "TRUE"
  • 重啟兩臺(tái)虛擬機(jī)發(fā)現(xiàn),添加成功

    [root@mds001 ~]# lsblk
    NAME ? ? ? ? ?  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda ? ? ? ? ? ? ? 8:0 ? ?0 ? 20G ?0 disk 
    ├─sda1 ? ? ? ? ? ?8:1 ? ?0 ?  1G ?0 part /boot
    └─sda2 ? ? ? ? ? ?8:2 ? ?0 ? 19G ?0 part ├─centos-root 253:0 ? ?0 ? 17G ?0 lvm  /└─centos-swap 253:1 ? ?0 ?  2G ?0 lvm  [SWAP]
    sdb ? ? ? ? ? ? ? 8:16 ? 0 ?  5G ?0 disk 
    sdc ? ? ? ? ? ? ? 8:32 ? 0 ?  5G ?0 disk 
    sdd ? ? ? ? ? ? ? 8:48 ? 0 ?  5G ?0 disk 
    sde ? ? ? ? ? ? ? 8:64 ? 0 ?  5G ?0 disk 
    sdf ? ? ? ? ? ? ? 8:80 ? 0 ?  5G ?0 disk 
    sr0 ? ? ? ? ? ? ?11:0 ? ?1 ?9.5G ?0 rom  /mnt/cdrom

9.安裝GPFS軟件包:

  • GPFS所需包:

    軟件包說(shuō)明
    gpfs.base-***.x86_64.rpmGPFS的基本軟件包(GPFS服務(wù)器和客戶端組件)
    gpfs.docs-***.noarch.rpmGPFS的文檔和幫助文件軟件包
    gpfs.gpl-***.noarch.rpmGPFS的GNU通用公共許可證(GPL)軟件包,包含一些GPFS的開(kāi)源組件
    gpfs.gskit-***.x86_64.rpmIBM Global Security Kit(GSKit)的組件,用于加密和安全通信
    gpfs.msg.en_US-***.noarch.rpmGPFS的英語(yǔ)消息文件,用于本地化和國(guó)際化
    gpfs.ext-***.x86_64.rpmGPFS 的擴(kuò)展工具包,用于安裝和管理 GPFS 文件系統(tǒng)的特定組件
  • 創(chuàng)建目錄:

    mkdir ~/gpfs-***
  • 上傳gpfs的rpm包

  • 安裝依賴(lài):

    yum -y install make perl rsh ld-linux.so libm.so.6 libc.so.6 ksh libstdc++.so.5 rsh-server rpcbind xinetd libaio cpp gcc-c++ gcc nfs-utils kernel-headers kernel-devel compat-libstdc++ glibc-devel libXp.so.6 imake rpm-build rpm-build m4
  • 安裝:

    cd ~/gpfs-*** && rpm -ivh \gpfs.base-***.x86_64.rpm \gpfs.docs-***.noarch.rpm \gpfs.gpl-***.noarch.rpm \gpfs.gskit-***.x86_64.rpm \gpfs.msg.en_US-***.noarch.rpm \gpfs.ext-***.x86_64.rpm
  • 編譯1:

    cd /usr/lpp/mmfs/src && make Autoconfig LINUX_DISTRIBUTION=REDHAT_AS_LINUX && make World && make InstallImages
  • 編譯問(wèn)題:

    • 問(wèn)題一:

        Cannot find a valid kernel header file. One of these files should exist./lib/modules/3.10.0-1160.el7.x86_64/build/include/linux/version.h/usr/src/linux-3.10.0-1160.el7.x86_64/include/linux/version.h/usr/src/kernels/3.10.0-1160.el7.x86_64/include/generated/uapi/linux/version.h/lib/modules/3.10.0-1160.el7.x86_64/build/include/generated/uapi/linux/version.h
      ?
      Contact IBM Service if you still encounter this problem after you install all the required packages.
      make: *** [Autoconfig] 錯(cuò)誤 1
      # 原因:路徑/usr/src/kernels/3.10.0-1160.el7.x86_64不存在
      [root@gpfs 3.10.0-1160.el7.x86_64]# ll /lib/modules/3.10.0-1160.el7.x86_64
      total 3300
      lrwxrwxrwx. ?1 root root ? ? 39 Aug 31 08:35 build -> /usr/src/kernels/3.10.0-1160.el7.x86_64
      .....
      [root@node1 src]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/kernel-devel-3.10.0-1160.el7.x86_64.rpm
      [root@node1 src]# rpm -Uvh kernel-devel-3.10.0-1160.el7.x86_64.rpm --force
    • 問(wèn)題二:

      In file included from /usr/include/sys/ioctl.h:26:0,from /usr/lpp/mmfs/src/gpl-linux/lxtrace.c:61:
      /usr/include/bits/ioctls.h:23:24: 致命錯(cuò)誤:asm/ioctls.h:沒(méi)有那個(gè)文件或目錄#include <asm/ioctls.h>^
      [root@node1 src]# find /usr/src/kernels/3.10.0-1160.el7.x86_64 -name "ioctls.h"
      /usr/src/kernels/3.10.0-1160.el7.x86_64/arch/x86/include/uapi/asm/ioctls.h
      /usr/src/kernels/3.10.0-1160.el7.x86_64/include/uapi/asm-generic/ioctls.h
      [root@node1 src]# rm -rf /usr/include/asm/ioctls.h
      [root@node1 src]# ln -s /usr/src/kernels/3.10.0-1160.el7.x86_64/arch/x86/include/uapi/asm/ioctls.h /usr/include/asm/ioctls.h
    • 問(wèn)題三:

      kdump-kern.o:在函數(shù)‘GetOffset’中:
      kdump-kern.c:(.text+0x15):對(duì)‘__x86_return_thunk’未定義的引用
      kdump-kern.o:在函數(shù)‘KernInit’中:
      kdump-kern.c:(.text+0x1a5):對(duì)‘__x86_return_thunk’未定義的引用
      kdump-kern.o:在函數(shù)‘GenericGet’中:
      kdump-kern.c:(.text+0x348):對(duì)‘__x86_return_thunk’未定義的引用
      kdump-kern.c:(.text+0x35e):對(duì)‘__x86_return_thunk’未定義的引用
      kdump-kern.o:在函數(shù)‘tiInit’中:
      kdump-kern.c:(.text+0x3bc):對(duì)‘__x86_return_thunk’未定義的引用
      kdump-kern.o:kdump-kern.c:(.text+0x445): 跟著更多未定義的參考到 __x86_return_thunk
      collect2: 錯(cuò)誤:ld 返回 1
      make[1]: *** [modules] 錯(cuò)誤 1
      make[1]: 離開(kāi)目錄“/usr/lpp/mmfs/src/gpl-linux”
      make: *** [Modules] 錯(cuò)誤 1
      vim /usr/lpp/mmfs/src/gpl-linux/kdump.c
      # 在122行添加內(nèi)容
      unsigned long __x86_return_thunk;
    • 問(wèn)題三:

      kdump-kern.o: In function `GetOffset':
      kdump-kern.c:(.text+0x9): undefined reference to `page_offset_base'
      kdump-kern.o: In function `KernInit':
      kdump-kern.c:(.text+0x58): undefined reference to `page_offset_base'
      collect2: error: ld returned 1 exit status
      make[1]: *** [modules] Error 1
      make[1]: Leaving directory `/usr/lpp/mmfs/src/gpl-linux'
      make: *** [Modules] Error 1
      vim /usr/lpp/mmfs/src/gpl-linux/kdump.c
      # 在122行添加內(nèi)容
      unsigned page_offset_base;
  • 如果沒(méi)有任何錯(cuò)誤,即為成功

  • 繼續(xù)執(zhí)行編譯命令2:(構(gòu)建 GPFS 可移植層)

    cd /usr/lpp/mmfs/src && make rpm
  • 完全成功如下:

    檢查未打包文件:/usr/lib/rpm/check-files /tmp/rpm
    寫(xiě)道:/root/rpmbuild/RPMS/x86_64/gpfs.gplbin-***.el7.x86_64-4.2.3-22.x86_64.rpm
    執(zhí)行(%clean): /bin/sh -e /var/tmp/rpm-tmp.WyvdX3
    + umask 022
    + cd /root/rpmbuild/BUILD
    + /usr/bin/rm -rf /tmp/rpm
    + exit 0
  • 最后的安裝:

    [root@gpfs1 src]# rpm -ivh /root/rpmbuild/RPMS/x86_64/gpfs.gplbin-***.el7.x86_64-4.2.3-22.x86_64.rpm
    準(zhǔn)備中... ? ? ? ? ? ? ? ? ? ? ? ? ?################################# [100%]
    正在升級(jí)/安裝...1:gpfs.gplbin-***.el7.################################# [100%]
  • 查看GPFS安裝情況:

    [root@gpfs1 ~]# rpm -qa|grep gpfs
    gpfs.msg.en_US-***.noarch
    gpfs.base-***.x86_64
    gpfs.ext-***.x86_64
    gpfs.gskit-***.x86_64
    gpfs.gplbin-***.el7.x86_64-***.x86_64
    gpfs.gpl-***.noarch
    gpfs.docs-***-22.noarch
  • gpfs的執(zhí)行文件位于/usr/lpp/mmfs/bin目錄中,請(qǐng)盡量將此路徑添加到系統(tǒng)PATH環(huán)境變量中

    echo 'export PATH=$PATH:/usr/lpp/mmfs/bin' >> /etc/profile
    source /etc/profile

10.創(chuàng)建集群:

  • 修改配置文件:

    # 第一項(xiàng)為所使用機(jī)器的主機(jī)名,第二項(xiàng)為配置項(xiàng),包括quorum節(jié)點(diǎn)的指定和manager節(jié)點(diǎn)的指定
    cat << eof > /tmp/gpfsfile
    node1:quorum-manager
    node2:quorum-manager
    eof
  • 創(chuàng)建集群:

    參數(shù)說(shuō)明
    -N指定節(jié)點(diǎn)文件名
    -p指定主NSD服務(wù)器
    -s指定備N(xiāo)SD服務(wù)器
    -r和-R-r是rsa密鑰,-R是復(fù)制命令
    -A指定當(dāng)節(jié)點(diǎn)出現(xiàn)時(shí)自動(dòng)啟動(dòng) GPFS 守護(hù)進(jìn)程。默認(rèn)情況下不自動(dòng)啟動(dòng)守護(hù)進(jìn)程
    -C設(shè)定集群名稱(chēng)
    -Ubgbc 定義域名
    -c配置文件
    [root@node1 ~]# mmcrcluster -N /tmp/gpfsfile -p node1 -s node2 -r /usr/bin/ssh -R /usr/bin/scp -A -C gpfs
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    mmcrcluster: Performing preliminary node verification ...
    node1:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    mmcrcluster: Processing quorum and other critical nodes ...
    mmcrcluster: Finalizing the cluster data structures ...
    mmcrcluster: Command successfully completed
    mmcrcluster: Warning: Not all nodes have proper GPFS license designations.Use the mmchlicense command to designate licenses as needed.
    mmcrcluster: Propagating the cluster configuration data to allaffected nodes.  This is an asynchronous process.
  • 創(chuàng)建集群報(bào)錯(cuò):

    • 報(bào)錯(cuò)1:卡住不動(dòng):

      [root@node1 ~]# mmcrcluster -N /tmp/gpfsfile -p node1 -s node2 -r /usr/bin/ssh -R /usr/bin/scp -A -C gpfs
      mmcrcluster: Performing preliminary node verification ...
      mmcrcluster: Processing quorum and other critical nodes ...
      mmcrcluster: Finalizing the cluster data structures ...
      # 刪除iptables
      yum remove -y iptables
    • 報(bào)錯(cuò)2:

      which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
      Tue Sep 12 06:17:05 EDT 2023: mmstartup: Starting GPFS ...
      which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
      node4:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
      node3:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
      node4:  The GPFS subsystem is already active.
      node3:  The GPFS subsystem is already active.
      yum install iproute -y
  • 如果執(zhí)行失敗或者中斷,可以通過(guò)一下命令清除

    [root@gpfs1 ~]# mmdelnode -f
    mmdelnode: [W] This option should only be used to remove all GPFS configuration files on a node that has already been deleted from a cluster.  If the node is still a member of a cluster, and it is then added to the same or to another cluster after 'mmdelnode -f' is issued, results will be unpredictable, possibly leading to mmfsd daemon failure.
    Do you want to continue? (yes/no) yes
    mmdelnode: All GPFS configuration files on node gpfs1 have been removed.
  • 查看GPFS集群:

    [root@node1 ~]# mmlscluster
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    ?
    GPFS cluster information
    ========================GPFS cluster name: ? ? ? ? gpfs.node1GPFS cluster id: ? ? ? ? ? 1484988891360413006GPFS UID domain: ? ? ? ? ? gpfs.node1Remote shell command: ? ?  /usr/bin/sshRemote file copy command:  /usr/bin/scpRepository type: ? ? ? ? ? CCR
    ?Node  Daemon node name  IP address ? ?  Admin node name  Designation
    ----------------------------------------------------------------------1 ? node1 ? ? ? ? ? ? 192.168.10.101  node1 ? ? ? ? ?  quorum-manager2 ? node2 ? ? ? ? ? ? 192.168.10.102  node2 ? ? ? ? ?  quorum-manager
  • 授權(quán):(服務(wù)節(jié)點(diǎn)或quorum節(jié)點(diǎn)用server,其它節(jié)點(diǎn)用client)

    [root@node1 ~]# mmchlicense server --accept -N node1,node2
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    ?
    The following nodes will be designated as possessing server licenses:node2node1
    mmchlicense: Command successfully completed
    mmchlicense: Propagating the cluster configuration data to allaffected nodes.  This is an asynchronous process.

11.啟動(dòng)集群:

  • 啟動(dòng)集群:

    [root@node1 ~]# mmstartup -a ?  # -a啟動(dòng)所有節(jié)點(diǎn)
    Thu Aug 31 23:49:52 EDT 2023: mmstartup: Starting GPFS ...
  • 報(bào)錯(cuò)問(wèn)題1:

    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    2023年 08月 31日 星期四 04:03:03 EDT: mmstartup: Starting GPFS ...
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    node2:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    node1:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    node2:  mmremote: startSubsys: The /lib/modules/3.10.0-1160.el7.x86_64/extra/mmfslinux.ko kernel extension does not exist.  Use mmbuildgpl command to create the needed kernel extension for your kernel or copy the binaries from another node with the identical environment.
    node2:  mmremote: startSubsys: Unable to verify kernel/module configuration.
    node1:  mmremote: startSubsys: The /lib/modules/3.10.0-1160.el7.x86_64/extra/mmfslinux.ko kernel extension does not exist.  Use mmbuildgpl command to create the needed kernel extension for your kernel or copy the binaries from another node with the identical environment.
    node1:  mmremote: startSubsys: Unable to verify kernel/module configuration.
    mmdsh: node2 remote shell process had return code 1.
    mmdsh: node1 remote shell process had return code 1.
    mmstartup: Command failed. Examine previous error messages to determine cause.
    # 原因:mmfslinux.ko文件在編譯過(guò)程中根據(jù)你(kernel-devel-3.10.0-1160.el7.x86_64版本)的生成,并且生成在/lib/modules/3.10.0-1160.el7.x86_64/extra下。如果你使用的kernel-devel版本是3.10.0-1160.95.1.el7.x86_64,那生成的mmfslinux.ko路徑會(huì)是/lib/modules/3.10.0-1160.95.1.el7.x86_64/extra。
    # 所以我這里的解決方法是:下載kernel-devel-3.10.0-1160.el7.x86_64
    [root@node1 ~]# rpm -qa | grep kernel
    kernel-3.10.0-1160.el7.x86_64
    kernel-headers-3.10.0-1160.95.1.el7.x86_64
    kernel-tools-3.10.0-1160.el7.x86_64
    kernel-tools-libs-3.10.0-1160.el7.x86_64
    kernel-devel-3.10.0-1160.el7.x86_64
  • 報(bào)錯(cuò)2:

    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    Tue Sep 12 06:17:05 EDT 2023: mmstartup: Starting GPFS ...
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    node4:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    node3:  which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    node4:  The GPFS subsystem is already active.
    node3:  The GPFS subsystem is already active.
    yum install iproute -y

12.查看集群狀態(tài):

[root@node1 ~]# mmgetstate -Lsa
?Node number  Node name ? ? ? Quorum  Nodes up  Total nodes  GPFS state  Remarks ? ?
------------------------------------------------------------------------------------1 ? ?  node1 ? ? ? ? ? ? ?2 ? ? ? ?0 ? ? ? ? ?2 ? ? ? arbitrating quorum node2 ? ?  node2 ? ? ? ? ? ? ?2 ? ? ? ?0 ? ? ? ? ?2 ? ? ? arbitrating quorum node
?Summary information 
---------------------
mmgetstate: Information cannot be displayed.  Either none of thenodes in the cluster are reachable, or GPFS is down on all of the nodes.

13.查看GPFS集群日志:

[root@node1 ras]# tail -f /var/adm/ras/mmsdrserv.log 
2023-08-31_01:57:40.570-0400: 2063787904 [N] Starting CCR serv ...
2023-08-31_02:11:42.723-0400: 2022106880 [N] CCR: Resetting previous state before 'initialization' enter
2023-08-31_02:11:42.728-0400: 2022106880 [N] CCR: initialization complete; cluster 1484988891360405094 node 1 epoch 0 err 0
2023-08-31_02:35:16.673-0400: 2617968512 [N] Starting CCR serv ...
2023-08-31_02:48:53.968-0400: 2576287488 [N] CCR: Resetting previous state before 'initialization' enter
2023-08-31_02:48:53.983-0400: 2576287488 [N] CCR: initialization complete; cluster 1484988891360408201 node 1 epoch 0 err 0
which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
2023-08-31_03:49:15.246-0400: 2769160064 [N] Starting CCR serv ...
2023-08-31_03:49:15.712-0400: 2727479040 [N] CCR: Resetting previous state before 'initialization' enter
2023-08-31_03:49:15.717-0400: 2727479040 [N] CCR: initialization complete; cluster 1484988891360413006 node 1 epoch 0 err 0

14.釋放文件鎖:

  • 有時(shí)候會(huì)出現(xiàn)無(wú)法執(zhí)行命令無(wú)法讀取配置文件的錯(cuò)誤

  • 原因:有命令正在執(zhí)行沒(méi)有釋放文件鎖,所以我們無(wú)法獲取

  • 解決方法如下:

  • 查看是否存在配置文件鎖:

    [root@node1 ~]# mmcommon showLocks
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    lockServer ? ? ? ? ? ? ? ?  lockName ? ? ? ? lockHolder ? ? ? ? ? ? ? ?  PID ? ? Extended Info
    ----------------------------------------------------------------------------------------------
    node1 ? ? ? ? ? ? ? ? ? ? ? mmfsEnvLock ? ?  node1 ? ? ? ? ? ? ? ? ? ? ? 12546 ? ?12546 ? 2432 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/mmdelnsd -p C0A80A6564F056B9
    CCR ? ? ? ? ? ? ? ? ? ? ? ? mmSdrLock ? ? ?  node1 ? ? ? ? ? ? ? ? ? ? ? 12546 ? ?12546 ? 2432 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/mmdelnsd -p C0A80A6564F056B9
  • 釋放文件鎖:

    [root@node1 ~]# mmcommon freeLocks mmfsEnvLock

14.創(chuàng)建NSD磁盤(pán):

  • 修改配置文件:

    usage屬性值說(shuō)明
    dataAndMetadata表示該磁盤(pán)存儲(chǔ)GPFS文件系統(tǒng)的數(shù)據(jù)和元數(shù)據(jù)(默認(rèn)情況);用于系統(tǒng)池中的磁盤(pán)
    dataOnly表示該磁盤(pán)只存儲(chǔ)GPFS文件系統(tǒng)的數(shù)據(jù);
    metadataOnly表示該磁盤(pán)只存儲(chǔ)GPFS文件系統(tǒng)的元數(shù)據(jù);
    descOnly表示該磁盤(pán)既沒(méi)有元數(shù)據(jù)也沒(méi)有數(shù)據(jù);僅用于保存文件系統(tǒng)描述符(災(zāi)難恢復(fù))
    localCache表示該磁盤(pán)作為本地只讀緩存
    # NSD磁盤(pán)的名稱(chēng)
    %nsd: nsd=NSD_1
    # 磁盤(pán)路徑
    device=/dev/sdb
    # 節(jié)點(diǎn)列表,最前的最先IO,如果前面的節(jié)點(diǎn)故障后面的接管
    servers=node1 node2
    # GPFS文件系統(tǒng)的存儲(chǔ)方式
    usage=dataAndMetadata
    # 用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的故障組,如果將多個(gè)NSD分配到同一個(gè)故障組中,GPFS將確保文件系統(tǒng)的數(shù)據(jù)在這些NSD之間分布均勻,以提供冗余和容錯(cuò)性。
    failureGroup=100
    # 用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的存儲(chǔ)池,存儲(chǔ)池是GPFS中的一個(gè)概念,它允許您將存儲(chǔ)資源組織和分配給不同的文件系統(tǒng)或目錄。通過(guò)將NSD分配給特定的存儲(chǔ)池,您可以更好地控制和管理文件系統(tǒng)的存儲(chǔ)資源。
    pool=system
    cat << eof > /tmp/nsd.node
    %nsd: nsd=NSD_1
    device=/dev/sdb
    servers=node1,node2
    usage=dataAndMetadata
    failureGroup=100
    pool=system
    ?
    %nsd: nsd=NSD_2
    device=/dev/sdc
    servers=node1,node2
    usage=dataAndMetadata
    failureGroup=100
    pool=system
    eof

  • 使用mmcrnsd命令創(chuàng)建NSD磁盤(pán)

    mmcrnsd命令參數(shù)說(shuō)明
    -F指定配置文件
    -v驗(yàn)證磁盤(pán)是否已格式化為NSD(默認(rèn)yes),
    -A指定是否將NSD標(biāo)記為可共享,即是否允許多個(gè)節(jié)點(diǎn)訪問(wèn)(默認(rèn)no)
    -p用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的存儲(chǔ)池,
    -t指定NSD的描述文本,提供有關(guān)該NSD的描述信息
    -s指定NSD的大小。通常,如果未指定 -s 參數(shù),GPFS 會(huì)自動(dòng)檢測(cè)磁盤(pán)的大小
    -f用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的故障組
    -h顯示命令的幫助信息
    -m將NSD分配給的存儲(chǔ)池的編號(hào)
    [root@node1 src]# mmcrnsd -F /tmp/nsd.node -v no
    mmcrnsd: Processing disk sdb
    mmcrnsd: Processing disk sdc
    mmcrnsd: Processing disk sdb
    mmcrnsd: Processing disk sdc
    mmcrnsd: Propagating the cluster configuration data to allaffected nodes.  This is an asynchronous process.
  • 查看nsd信息:

    [root@node1 ~]# mmlsnsd -m
    ?Disk name ?  NSD volume ID ? ?  Device ? ? ? ? Node name ? ? ? ? ? ? ?  Remarks ? ? ? 
    ---------------------------------------------------------------------------------------NSD_1 ? ? ?  C0A80A656501153A ? /dev/sdb ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodeNSD_1 ? ? ?  C0A80A656501153A ? /dev/sdb ? ? ? node2 ? ? ? ? ? ? ? ? ?  server nodeNSD_2 ? ? ?  C0A80A656501153C ? /dev/sdc ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodeNSD_2 ? ? ?  C0A80A656501153C ? /dev/sdc ? ? ? node2 ? ? ? ? ? ? ? ? ?  server node
  • 查看NSD配置文件:

    [root@node1 ~]# cat cat /tmp/nsd.node
    cat: cat: No such file or directory
    # /dev/sdb:node1::dataAndMetadata:1:nsd1:
    nsd1:::dataAndMetadata:1::system
    # /dev/sdc:node2::dataAndMetadata:1:nsd2:
    nsd2:::dataAndMetadata:1::system

15.配置tiebreaker仲裁盤(pán):

  • 仲裁盤(pán)作用:

    • 當(dāng)定義的仲裁盤(pán)有一半的磁盤(pán)不可用時(shí),該集群不可用。

    • 有效磁盤(pán)數(shù)小于等于整個(gè)磁盤(pán)數(shù)一半時(shí),整個(gè)文件系統(tǒng)不可用

  • 配置仲裁盤(pán):

    mmchconfig tiebreakerDisks="NSD_1;NSD_2"

16.在線添加NSD:

  • 添加一塊共享硬盤(pán):

    [root@node3 ~]# lsblk
    NAME ? ? ? ? ?  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda ? ? ? ? ? ? ? 8:0 ? ?0 ? 20G ?0 disk 
    |-sda1 ? ? ? ? ? ?8:1 ? ?0 ?  1G ?0 part /boot
    `-sda2 ? ? ? ? ?  8:2 ?  0 ? 19G  0 part |-centos-root 253:0 ? ?0 ? 17G ?0 lvm  /`-centos-swap 253:1 ?  0 ?  2G  0 lvm  [SWAP]
    sdb ? ? ? ? ? ? ? 8:16 ? 0 ?  5G ?0 disk 
    `-sdb1 ? ? ? ? ?  8:17 ? 0 ?  5G  0 part 
    sdc ? ? ? ? ? ? ? 8:32 ? 0 ?  5G ?0 disk 
    `-sdc1 ? ? ? ? ?  8:33 ? 0 ?  5G  0 part 
    sdd ? ? ? ? ? ? ? 8:48 ? 0 ?  5G ?0 disk 
    sr0 ? ? ? ? ? ? ?11:0 ? ?1 ?9.5G ?0 rom  /mnt/cdrom
  • 修改配置文件:

    usage屬性值說(shuō)明
    dataAndMetadata表示該磁盤(pán)存儲(chǔ)GPFS文件系統(tǒng)的數(shù)據(jù)和元數(shù)據(jù)(默認(rèn)情況);用于系統(tǒng)池中的磁盤(pán)
    dataOnly表示該磁盤(pán)只存儲(chǔ)GPFS文件系統(tǒng)的數(shù)據(jù);
    metadataOnly表示該磁盤(pán)只存儲(chǔ)GPFS文件系統(tǒng)的元數(shù)據(jù);
    descOnly表示該磁盤(pán)既沒(méi)有元數(shù)據(jù)也沒(méi)有數(shù)據(jù);僅用于保存文件系統(tǒng)描述符(災(zāi)難恢復(fù))
    localCache表示該磁盤(pán)作為本地只讀緩存
    # NSD磁盤(pán)的名稱(chēng)
    %nsd: nsd=NSD_1
    # 磁盤(pán)路徑
    device=/dev/sdb
    # 節(jié)點(diǎn)列表,最前的最先IO,如果前面的節(jié)點(diǎn)故障后面的接管
    servers=node1 node2
    # GPFS文件系統(tǒng)的存儲(chǔ)方式
    usage=dataAndMetadata
    # 用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的故障組,如果將多個(gè)NSD分配到同一個(gè)故障組中,GPFS將確保文件系統(tǒng)的數(shù)據(jù)在這些NSD之間分布均勻,以提供冗余和容錯(cuò)性。
    failureGroup=100
    # 用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的存儲(chǔ)池,存儲(chǔ)池是GPFS中的一個(gè)概念,它允許您將存儲(chǔ)資源組織和分配給不同的文件系統(tǒng)或目錄。通過(guò)將NSD分配給特定的存儲(chǔ)池,您可以更好地控制和管理文件系統(tǒng)的存儲(chǔ)資源。
    pool=system
    cat << eof > /tmp/nsd.node
    %nsd: nsd=NSD_1
    device=/dev/sdb
    servers=node1,node2
    usage=dataAndMetadata
    failureGroup=100
    pool=system
    ?
    %nsd: nsd=NSD_2
    device=/dev/sdc
    servers=node1,node2
    usage=dataAndMetadata
    failureGroup=100
    pool=system
    ?
    %nsd: nsd=NSD_3
    device=/dev/sdd
    servers=node1,node2
    usage=dataAndMetadata
    failureGroup=100
    pool=system
    eof
  • 使用mmcrnsd命令創(chuàng)建NSD磁盤(pán):

    mmcrnsd命令參數(shù)說(shuō)明
    -F指定配置文件
    -v驗(yàn)證磁盤(pán)是否已格式化為NSD(默認(rèn)yes),
    -A指定是否將NSD標(biāo)記為可共享,即是否允許多個(gè)節(jié)點(diǎn)訪問(wèn)(默認(rèn)no)
    -p用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的存儲(chǔ)池,
    -t指定NSD的描述文本,提供有關(guān)該NSD的描述信息
    -s指定NSD的大小。通常,如果未指定 -s 參數(shù),GPFS 會(huì)自動(dòng)檢測(cè)磁盤(pán)的大小
    -f用于指定NSD(Network Shared Disk)共享磁盤(pán)所屬的故障組
    -h顯示命令的幫助信息
    -m將NSD分配給的存儲(chǔ)池的編號(hào)
    [root@node1 src]# mmcrnsd -F /tmp/nsd.node -v no
    mmcrnsd: Processing disk sdb
    mmcrnsd: Processing disk sdc
    mmcrnsd: Processing disk sdb
    mmcrnsd: Processing disk sdc
    mmcrnsd: Propagating the cluster configuration data to allaffected nodes.  This is an asynchronous process.
  • 查看nsd信息:

    [root@node1 ~]# mmlsnsd -m
    ?Disk name ?  NSD volume ID ? ?  Device ? ? ? ? Node name ? ? ? ? ? ? ?  Remarks ? ? ? 
    ---------------------------------------------------------------------------------------NSD_1 ? ? ?  C0A80A656501153A ? /dev/sdb ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodeNSD_1 ? ? ?  C0A80A656501153A ? /dev/sdb ? ? ? node2 ? ? ? ? ? ? ? ? ?  server nodeNSD_2 ? ? ?  C0A80A656501153C ? /dev/sdc ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodeNSD_2 ? ? ?  C0A80A656501153C ? /dev/sdc ? ? ? node2 ? ? ? ? ? ? ? ? ?  server nodeNSD_3 ? ? ?  C0A80A6565011BB5 ? /dev/sdd ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodeNSD_3 ? ? ?  C0A80A6565011BB5 ? /dev/sdd ? ? ? node2 ? ? ? ? ? ? ? ? ?  server node

17.刪除NSD磁盤(pán):

  • 查看是否存在配置文件鎖:

    [root@node1 ~]# mmcommon showLocks
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    lockServer ? ? ? ? ? ? ? ?  lockName ? ? ? ? lockHolder ? ? ? ? ? ? ? ?  PID ? ? Extended Info
    ----------------------------------------------------------------------------------------------
    node1 ? ? ? ? ? ? ? ? ? ? ? mmfsEnvLock ? ?  node1 ? ? ? ? ? ? ? ? ? ? ? 12546 ? ?12546 ? 2432 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/mmdelnsd -p C0A80A6564F056B9
    CCR ? ? ? ? ? ? ? ? ? ? ? ? mmSdrLock ? ? ?  node1 ? ? ? ? ? ? ? ? ? ? ? 12546 ? ?12546 ? 2432 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/mmdelnsd -p C0A80A6564F056B9
  • 釋放文件鎖:

    [root@node1 ~]# mmcommon freeLocks mmfsEnvLock
  • 查看存在的NSD磁盤(pán):

    [root@node1 ~]# mmlsnsd -m
    which: no ip in (/bin:/usr/bin:/sbin:/usr/sbin:/usr/lpp/mmfs/bin)
    ?Disk name ?  NSD volume ID ? ?  Device ? ? ? ? Node name ? ? ? ? ? ? ?  Remarks ? ? ? 
    ---------------------------------------------------------------------------------------nsd1 ? ? ? ? C0A80A6564F056B9 ? /dev/sdb ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodensd1 ? ? ? ? C0A80A6564F056B9 ? /dev/sdb ? ? ? node2 ? ? ? ? ? ? ? ? ? ?nsd2 ? ? ? ? C0A80A6564F056BB ? /dev/sdc ? ? ? node1 ? ? ? ? ? ? ? ? ?  server nodensd2 ? ? ? ? C0A80A6564F056BB ? /dev/sdc ? ? ? node2 ? ? ? ? ? ? ? ? ? ?nsd3 ? ? ? ? C0A80A6664F056BC ? /dev/sdd ? ? ? node1 ? ? ? ? ? ? ? ? ? ?nsd3 ? ? ? ? C0A80A6664F056BC ? /dev/sdd ? ? ? node2 ? ? ? ? ? ? ? ? ?  server nodensd4 ? ? ? ? C0A80A6664F056BE ? /dev/sde ? ? ? node1 ? ? ? ? ? ? ? ? ? ?nsd4 ? ? ? ? C0A80A6664F056BE ? /dev/sde ? ? ? node2 ? ? ? ? ? ? ? ? ?  server node
  • 刪除NSD磁盤(pán):

    [root@node1 ~]# mmdelnsd nsd1
    [root@node1 ~]# mmdelnsd -F /tmp/nsd.node

18.創(chuàng)建GPFS文件系統(tǒng):

  • 參數(shù):

    參數(shù)說(shuō)明
    /gpfs1文件系統(tǒng) mount 點(diǎn)名稱(chēng)
    /dev/gpfs1指定文件系統(tǒng) lv 名稱(chēng)
    -F指定 NSD 的文件名
    -A自動(dòng) mount 選項(xiàng)為 yes
    -B塊大小為512K
    -n代表該集群最大支持節(jié)點(diǎn)數(shù)
    -j代表存儲(chǔ)工作方式為集群方式
    -Q代表打開(kāi)磁盤(pán)配額管理功能
  • 創(chuàng)建GPFS文件系統(tǒng):

    [root@node1 ~]# mmcrfs /gpfs1 /dev/gpfs1 -F /tmp/nsd.node -A yes -B 512k -m 1 -M 2 -r 1 -R 2 -n 512 -j cluster -Q yes
    ?
    The following disks of gpfs1 will be formatted on node node1:nsd1: size 5120 MBnsd2: size 5120 MB
    Formatting file system ...
    Disks up to size 596 GB can be added to storage pool system.
    Creating Inode File
    Creating Allocation Maps
    Creating Log Files
    Clearing Inode Allocation Map
    Clearing Block Allocation Map
    Formatting Allocation Map for storage pool system
    Completed creation of file system /dev/gpfs1.
    mmcrfs: Propagating the cluster configuration data to allaffected nodes.  This is an asynchronous process.
  • 查看集群狀態(tài):

    [root@node1 ~]# mmgetstate -a ? ? ? ? ? ? ? ? ?  # 查看集群狀態(tài),所有節(jié)點(diǎn)為active,則集群正常啟動(dòng)
    ?Node number  Node name ? ? ?  GPFS state 
    ------------------------------------------1 ? ?  node1 ? ? ? ? ?  active2 ? ?  node2 ? ? ? ? ?  active
    [root@node1 ~]# mmlsconfig
    Configuration data for cluster gpfs-node1-2.node1:
    --------------------------------------------------
    clusterName gpfs-node1-2.node1
    clusterId 1484988891361513241
    autoload yes
    dmapiFileHandleSize 32
    minReleaseLevel 4.2.3.9
    ccrEnabled yes
    cipherList AUTHONLY
    tiebreakerDisks NSD_1;NSD_2
    adminMode central
    ?
    File systems in cluster gpfs-node1-2.node1:
    -------------------------------------------
    /dev/gpfs1

19.掛載GPFS文件系統(tǒng):

mmmount all -a ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 在所有節(jié)點(diǎn)掛載所有GPFS
mmmount /gpfs1 -N node1 ? ? ? ? ? ? ? ? ? ?# 在某節(jié)點(diǎn)掛載某GPFS文件系統(tǒng)
[root@node1 src]# mmlsmount gpfs1 -LFile system gpfs1 is mounted on 3 nodes:192.168.10.101  node1 ? ? ? ? ? ? ? ? ? ? 192.168.10.102  node2 ? ? ? ? ? ? ? ? ? ? 192.168.10.111  client-side ? ?
  • 報(bào)錯(cuò)1:

    [root@node1 gpfs1]# mmumount gpfs1 -N node2 
    Wed Sep 13 10:19:32 EDT 2023: mmumount: Unmounting file systems ...
    node2:  /bin/ksh: /usr/lpp/mmfs/bin/mmremote: not found
    mmumount: Command failed. Examine previous error messages to determine cause.
    # 安裝gpfs-base軟件包
    rpm -ivh gpfs.base-4.2.3-22.x86_64.rpm
http://www.risenshineclean.com/news/5436.html

相關(guān)文章:

  • python 網(wǎng)站開(kāi)發(fā)小項(xiàng)目怎樣制作網(wǎng)站
  • 電子商務(wù)主要學(xué)什么就業(yè)工資seo是什么工作內(nèi)容
  • 網(wǎng)站開(kāi)發(fā)與服務(wù)合同范本建立網(wǎng)站平臺(tái)
  • 長(zhǎng)沙門(mén)戶網(wǎng)站地推拉新app推廣平臺(tái)有哪些
  • 山東淄博網(wǎng)站建設(shè)公司百度推廣客戶端教程
  • 河北seo技術(shù)東莞百度seo
  • 黃巖做網(wǎng)站的公司搜索引擎優(yōu)化策略有哪些
  • 赤壁網(wǎng)站開(kāi)發(fā)珠海網(wǎng)站seo
  • 阜陽(yáng)訊拓網(wǎng)站建設(shè)公司廣州優(yōu)化疫情防控措施
  • 網(wǎng)站制作素材公眾號(hào)軟文范例100
  • 網(wǎng)站建設(shè)事宜seod的中文意思
  • 青海省西寧市住房城鄉(xiāng)建設(shè)廳網(wǎng)站河南網(wǎng)絡(luò)推廣公司
  • 做計(jì)算機(jī)版權(quán)需要網(wǎng)站源代碼網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣培訓(xùn)機(jī)構(gòu)
  • 網(wǎng)站開(kāi)發(fā)結(jié)課大作業(yè)網(wǎng)絡(luò)營(yíng)銷(xiāo)課程主要講什么內(nèi)容
  • 做旅游網(wǎng)站怎么融資沈陽(yáng)seo整站優(yōu)化
  • 怎么做網(wǎng)站上打字體關(guān)鍵詞優(yōu)化工具
  • 沈陽(yáng)公司做網(wǎng)站的域名解析網(wǎng)站
  • 信息門(mén)戶網(wǎng)站制作費(fèi)用合肥關(guān)鍵詞排名工具
  • 網(wǎng)站功能優(yōu)化的意義seo綜合查詢(xún)工具可以查看哪些數(shù)據(jù)
  • 安全的網(wǎng)站今日新聞最新頭條10條
  • 常州企業(yè)網(wǎng)站建設(shè)常見(jiàn)的網(wǎng)絡(luò)營(yíng)銷(xiāo)工具有哪些
  • 3d溜溜網(wǎng)裝修效果圖seo推廣哪家服務(wù)好
  • 怎樣做類(lèi)似淘寶網(wǎng)的網(wǎng)站seo怎么優(yōu)化步驟
  • 寫(xiě)網(wǎng)站建設(shè)的軟文互聯(lián)網(wǎng)營(yíng)銷(xiāo)師報(bào)名費(fèi)
  • 網(wǎng)站色彩設(shè)計(jì)同城廣告發(fā)布平臺(tái)
  • 北京哪個(gè)公司做網(wǎng)站好東莞網(wǎng)絡(luò)優(yōu)化公司
  • wordpress制作圖床seow
  • 做網(wǎng)站公司排名多少錢(qián)軟文經(jīng)典案例
  • 12306的網(wǎng)站多少錢(qián)做的今天的特大新聞?dòng)心男?/a>
  • 直播網(wǎng)站怎么做灰色關(guān)鍵詞怎么做排名