Linux 多网口绑定

多网口绑定(也称为网卡组或链路聚合)是一种将多个网卡绑定成单个网络设备的技术。利用该技术可以实现某个或多个目标,例如提高网络链路容错能力,增加网络通信性能等。类似光纤通道和光纤交换机这样的高速网络硬件的价格一般都非常昂贵。利用链路聚合技术,将两个物理网卡组成一个逻辑网卡,能够将网络传输速度加倍。
大部分交换机设备都已经支持 Linux 内核的这个特性。如果你的服务器有多个以太网口,你可以将这些网口连接到不同的交换机,以便将故障点分散到不同的网络设备,一旦有物理线路故障或网络设备故障发生,多网卡绑定会自动将通信流量从故障线路切换到正常线路。
链路聚合技术可以有效减少虚拟机在线迁移的时延,并提高服务器节点之间的数据复制速度。
目前一共有 7 种网口绑定模式:

阅读更多
ceph 节点更换ip和主机名
前言ceph测试节点的ip分配不当,然后主机名的命名又是和ip关联的,这次尝试一下集群无感换节点主机名和ip 更换前 (hosname-ip-role) 更换后 s14 – 172.16.8.14 – mon/mgr/osd s100 –172.16.8.100 – mon/mgr/o ...
阅读更多
ceph 升级(hammer to luminous)

前言

升级ceph hammer 0.94.10到luminous 12.2.x,分两次升级,第一次hammer to jewel ,第二次jewel to luminous,升级中不中断业务并保证升级后ceph pool中的块设备不发生变化(主要是校验文件哈希值是否发生变化)
系统:ubuntu 16.04

阅读更多
osd filestore转换成bluestore

前言

  • filestore最主要的问题: 因为引入了journal的缘故,数据会先写在journal设备上,然后再由journal向本地磁盘写入,这就造成了双写,如果是采用多副本的方案,双写带来的性能问题那就是灾难性的了。 filestore需要本地文件系统间接管理磁盘,所以需要把对象操作先转换为符合POSIX语义的文件操作,这样比较繁琐,相对的执行效率上就大打折扣。

  • bluestore的优势: bluestore直接对裸磁盘进行io操作,抛弃了文件系统,缩短了io路径,不在需要journal了,默认采用RocksDB作为元数据 K/V 引擎,直接解决了双写的问题,对纯机械硬盘的顺序写来说,性能有近2倍的提升。

阅读更多
Ubuntu Desktop 下使用shadowsocks协议实现pac

使用gost连接shadowsocks server

这里使用gost当shadoswsocks client 是因为系统里有些程序不支持SOCK5,我们可以
使用gost把SOCK5 转成HTTP代理
首先下载gost
wget https://github.com/ginuerzh/gost/releases/download/v2.4/gost_2.4_linux_amd64.tar.gz
下载之后解压文件
压缩包里面就只有一个gost文件,把这个文件mv 到/bin目录下
新建一个systemd unit file

cat >> /lib/systemd/system/gost.service <<EOF
[Unit]
Description=Gost Client Service
After=network.target
[Service]
Type=simple
User=nobody
ExecStart=/bin/gost -L http://127.0.0.1:1080 -F ss://aes-256-cfb:password@ip:port
[Install]
WantedBy=multi-user.target
EOF

阅读更多
Ubuntu/Debain 网络安装

前言

Ubuntu 16.04 GA kernel 网络安装,自动配置

工作目录
/data/netboot/1604

下载并解压

axel -n 16 -a http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar -zxvf netboot.tar.gz -C /data/netboot/1604/

├── ldlinux.c32 -> ubuntu-installer/amd64/boot-screens/ldlinux.c32
├── preseed.cfg
├── pxelinux.0 -> ubuntu-installer/amd64/pxelinux.0
├── pxelinux.cfg -> ubuntu-installer/amd64/pxelinux.cfg
├── ubuntu-installer
│   └── amd64
│   ├── boot-screens
│   │   ├── adtxt.cfg
│   │   ├── exithelp.cfg
│   │   ├── f10.txt
│   │   ├── f1.txt
│   │   ├── f2.txt
│   │   ├── f3.txt
│   │   ├── f4.txt
│   │   ├── f5.txt
│   │   ├── f6.txt
│   │   ├── f7.txt
│   │   ├── f8.txt
│   │   ├── f9.txt
│   │   ├── ldlinux.c32
│   │   ├── libcom32.c32
│   │   ├── libutil.c32
│   │   ├── menu.cfg
│   │   ├── prompt.cfg
│   │   ├── rqtxt.cfg
│   │   ├── splash.png
│   │   ├── stdmenu.cfg
│   │   ├── syslinux.cfg
│   │   ├── txt.cfg
│   │   └── vesamenu.c32
│   ├── initrd.gz
│   ├── linux
│   ├── pxelinux.0
│   └── pxelinux.cfg
│   └── default -> ../boot-screens/syslinux.cfg
└── version.info

5 directories, 31 files
阅读更多
ceph 性能测试

预期目标

  • 在1024个客户端,并发2048个线程,块大小为64k,队列深度为32的情况下,需要什么样的硬件环境,才能保证读写稳定,iops延时不大于10ms,平均值在5ms。

实验环境

os:ubuntu 14.04
kernel version:3.16.0-30-generic
所有osd采用bluestore
8个ssd:三星850 pro 1TB
22个hdd:Seagate Barracuda ST2000DM001 2TB

阅读更多
ceph优化篇

操作系统优化

linux kernel

  1. 调度 (默认值deadline)
    ssd使用noop,hd使用deadline

    修改磁盘调度器有三种方法

    方法一:
    直接修改文件,重启失效,

    echo noop > /sys/block/sd*/queue/scheduler
    echo deadline > /sys/block/sd*/queue/scheduler

    方法二:
    修改grub,编辑/etc/default/grub文件

    GRUB_CMDLINE_LINUX="elevator=noop"

    之后执行update-grub2更新grub,重启之后生效
    这会把系统里的所有磁盘的调度器都全部修改,适合系统里磁盘都是统一类型的机器

    方法三:
    针对不通类型的磁盘,创建udev文件(create /etc/udev/rules.d/60-ssd-scheduler.rules)

    # set deadline scheduler for non-rotating disks
    ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
阅读更多