记录一下磁盘挂载的经历,背景是这样的,业务运行时有大量的日志文件产生,因此给服务器挂载一个数据盘。
先普及几个查看linux磁盘空间的命令:
df -h 查看磁盘空间
du -m 查看当前目录下各个文件占用存储空间大小,单位为MB
fdisk -l 查看当前磁盘分区信息
1.使用fdisk -l查看当前磁盘分区信息,还有一个200+GB的数据盘可以使用
sudo fdisk -l
2.发现有路径为/dev/vdb可以来挂载,使用fdisk命令进行磁盘挂载
sudo fdisk /dev/vdb
接下来进入交互界面,相关命令如下:
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
(1)输入n,add a new partition,增加一个分区
(2)一直默认 回车就可以,连续4次默认
(3)输入w,write table to disk and exit
3.格式化新建好的分区,建立文件系统,mkfs.xfs或者mkfs.ext4分别建立xfs和ext4文件系统,由于xfs的兼容性和可扩展性更强,这里我们选择xfs作为文件系统
sudo mkfs.xfs /dev/vdb1
4.使用mount命令进行挂载
(1) 新建目录
mkdir -p /home/admin/logs
(2)挂载
sudo mount /dev/vdb1 /home/admin/logs
至此,磁盘就已经挂载好了。
可是一个集群那么多机器,总不能一台一台手动挂载吧,太麻烦了,优秀的程序员应该具有lazy的特质。
接下来,pssh工具隆重登场,pssh是python写的批量操作神器,可用来实现批量操作,如kill进程、部署、启动服务等。
先在管理机器上安装pssh工具(可自行google),pssh工具语法如下:
pssh [-vAiIP] [-h hosts_file] [-H [[email protected]]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] command ...
-h host_file 表示要控制的IP,IP都存放在host_file这个文件中
-i 表示执行完命令后显示标准输出和error(Display standard output and standard error as each host completes)
-t 设定pssh命令超时,这个值给0时,pssh默认不会超时
下面将前面磁盘挂载的命令写成脚本,细心的同学会注意到,有交互命令,怎么写成脚本呢?
这里可以通过EOF来实现,直接上代码吧,<<EOF表示交互命令开始,EOF表示结果,中间有4行,表示4个回车。
sudo fdisk /dev/vdb << EOF
n
w
EOF
sudo mkfs.xfs /dev/vdb1
sudo mkdir -p /home/admin/logs
sudo mount /dev/vdb1 /home/admin/logs
保存为disk-mount.sh文件,将这些文件都通过pscp拷贝到这些所有机器上,再通过pssh命令完成磁盘的批量挂载
pssh -h ip_list -i -t 0 "sudo sh disk-mount.sh"
参考:
[1] https://linux.die.net/man/1/pssh
[2] https://www.cnblogs.com/silent2012/p/4586273.html
[3] https://www.cnblogs.com/Dicky-Zhang/p/5988415.html