Archive

Posts Tagged ‘AWS’

[Ubuntu]使用open-iscsi发起iscsi连接Target

January 19th, 2020 No comments

名下有多台VPS服务器放在不同的云供应商那里,定期备份服务器数据成了很棘手的问题。
习惯上会使用挂载nfs方式,使用s3fs-fuse先将S3的Bucket挂载到本机分区,然后向该分区写入需要备份的文件,

但是近期S3的接入稳定性确实很差,即使是AWS的老家美国,使用s3fs-fuse挂载的分区,也不能有比较稳定的读写。
碰到大量文件和持续读写的情况,效果非常不理想

近期发现使用 AWS Storage Gateway可以直接让虚拟机连接到iscsi的target,然后操作相应的LUN和卷。iscsi协议因为使用了比HTTP/S更低的TCP/IP协议,相对s3fs方式可以更稳定。

另外 AWS Storage Gateway的传入流量是免费的,只收取存储到S3,EBS的的存储费用。

服务器版本:Ubuntu18.04 LTS
设备目标:/dev/sdc

一、安装和配置iscsi发起端程序
1.安装open-scsi和utils

#安装open-scsi和utils
sudo apt-get install open-iscsi open-iscsi-utils

2.发现iscsi target

#发现iscsi target
sudo iscsiadm -m discovery -t sendtargets -p XXX.XXX.XXX.XXX:3260

3.登陆target

#登陆target
sudo iscsiadm -m node --targetname iqn.1997-05.com.amazon.XXXXXX -p XXX.XXX.XXX.XXX:3260 --login

二、挂载硬盘

1.发现并分区格式化磁盘

fdisk -l

2.分区格式化LUN

fdisk /dev/sdc
mkfs.ext4 /dev/sdc1

3.挂载到指定

sudo mkdir /mnt/backup
sudo mount /dev/sdc1 /mnt/backup

4.卸载硬盘

sudo unmount /mnt/backup

三、开机自动连接到LUN,挂载硬盘

1.开机自动登陆target
修改/etc/iscsi/iscsid.conf,开启自动登陆到Gateway

vi /etc/iscsi/iscsid.conf
#自动开启
node.startup = automatic

2.修改/etc/fstab,实现开机自动挂载

#获取文件系统的UUID
tune2fs -l

修改/etc/fstab,实现开机自动挂载

#修改/etc/fstab
sudo vi /etc/fstab

#在/etc/fstab中添加

UUID=6dba31ff-xxxx-4430-bbd2-c1a932a53308 /backup ext4 _netdev 0 0

几个需要注意的地方:
1.如果跟AWS Storage Gateway连接期间发生未知中断,可以试试强制刷新设备

udevadm test /sys/block/sdc

2.如果发生连接超时的情况,通常跟网络质量有关,AWS推荐可以修改iscsid.conf

vi /etc/iscsi/iscsid.conf
# 修改连接超时参数
node.session.timeo.replacement_timeout = 600 
node.conn[0].timeo.noop_out_interval = 60
node.conn[0].timeo.noop_out_timeout = 600

参考
https://docs.aws.amazon.com/storagegateway/latest/userguide/initiator-connection-common.html#CustomizeLinuxiSCSISettings

Categories: 系统管理, 零敲碎打 Tags:

PostgreSql查询正在执行的SQL和查询执行耗时的SQL

November 9th, 2018 No comments

运行在AWS RDS上的PostgreSql今天TransactionID耗尽,原因是有一个SQL执行占用CPU超过12小时

–查询正在执行的SQL

SELECT * FROM pg_stat_activity WHERE datname='schema名称';

–结束正在进行的R查询

SELECT pg_cancel_backend(pid);

–结束正在执行CUD操作

SELECT  pg_terminate_backend(pid)

Read more…

Categories: 系统管理, 语言编程 Tags: , ,

[CentOS] 使用s3fs-fuse挂载S3Bucket到本地分区

November 9th, 2018 No comments

准备工作
1.创建接入S3 Bucket的IAM用户
2.创建S3 Bucket,赋予IAM用户读写S3 Bucket的权限

测试环境
Amazon AMI Linux
CentOS 7.5

s3fs
s3fs allows Linux and macOS to mount an S3 bucket via FUSE. s3fs preserves the native object format for files, allowing use of other tools like s3cmd.

STEP1. 安装s3fs-fuse相关依赖包

 # install automake fuse fuse-devel gcc-c++ git \
 libcurl-devel libxml2-devel make openssl-devel

STEP2.下载s3fs-fuse,编译安装s3fs-fuse

# cd /usr/local/
# git clone https://github.com/s3fs-fuse/s3fs-fuse.git
# cd s3fs-fuse
# ./autogen.sh
# ./configure
# make
# make install

Read more…

Categories: 系统管理 Tags: , ,