Category Archives: Linux

调整 net.ipv4.tcp_tw_recycle 造成的故障

  • 背景

在 nat 的网络环境访问服务器时会有不定时连接超时的问题

  • 原因

出现此问题,可能是系统参数设置问题,即以下两个参数都设置为 1

net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_recycle = 1

RFC1323中有如下一段描述:

An additional mechanism could be added to the TCP, a per-host cache of the last timestamp received from any connection. This value could then be used in the PAWS mechanism to reject old duplicate segments from earlier incarnations of the connection, if the timestamp clock can be guaranteed to have ticked at least once since the old connection was open. This would require that the TIME-WAIT delay plus the RTT together must be at least one tick of the sender’s timestamp clock. Such an extension is not part of the proposal of this RFC. ...

ProxmoxVE更换ZFS rpool系统盘

之前配置的Proxmox服务器系统盘一律使用ZFS Mirror模式,前段时间SMART提示有个硬盘有坏道了。拿了个新盘替换上去,做个笔记记录一下操作流程。
首先查看一下ZFS池状态:

[email protected]:~# zpool status -v   pool: rpool  state: ONLINE   scan: scrub repaired 0B in 0h41m with 0 errors on Sun Dec  8 01:05:19 2019 config:     NAME        STATE     READ WRITE CKSUM     rpool       ONLINE       0     0     0       mirror-0  ONLINE       0     0     0         sda2    ONLINE       0     0     0         sdb2    ONLINE       0     0     0 errors: No known data errors ...

[Cloudreve]用 Cloudreve 快速建设基于OSS的个人云盘

前言

之前其实在云计算的1024中玩法中其实也有介绍过在 ECS 搭建一个 NextCloud 的网盘(),不过其实 ECS 云盘的价格还是比较贵的,在高并发下载的时候也容易遇到 I/O 瓶颈,特别是当云盘储存到一定容量以后如何扩容云盘也会是一个比较麻烦的事情。

像 OSS 这样的对象储存才是附件储存的第一选择,在国内外许多网盘公司都是选择购买对象储存的云服务来降低成本和运维压力的。那么我们搭建一个私人网盘自然也要选择 OSS 作为储存。

介绍

Cloudreve 就是这样一款出色的国产网盘,是一款基于 ThinkPHP 构建的网盘系统,能够助您以较低成本快速搭建起公私兼备的网盘。在功能上,可限制单文件最大大小、MIMEType、文件后缀、用户可用容量,图片、音频、视频、文本、Markdown、Ofiice文档 在线预览,拖拽上传、分片上传、断点续传、下载限速等等。

要求 & 收获

需要使用到的产品:

  1. 搭建了 LNMP 环境的任意(包括非阿里云)服务器/ECS (阿里云服务器可以不计推送到 OSS 的流量)
  2. 阿里云 OSS

通过本文你将讲学到:

  1. 使用 Composer 安装 PHP 程序
  2. 使用 OSS 作为网盘储存

教程

由于篇幅限制,不过多介绍 LNMP 环境介绍和虚拟主机搭建,具体教程请看:【云计算的1024种玩法】手把手学会配置安装 LNMP 建站环境

安装 Composer

由于目前 Cloudreve 处于开发状态,所以我们需要通过 Composer 进行安装。

一、运行下面代码即可全局安装 Composer:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

二、使用国内镜像 因为默认源在海外,国内服务器下载可能会很慢,海外服务器可以跳过:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

安装 Cloudreve

创建好网盘用的虚拟主机和数据库后,进入虚拟主机网站的目录,例如我的是 /data/wwwroot/pan,然后开始下载安装:

cd /data/wwwroot/
composer create-project hfo4/cloudreve:dev-master

然后再虚拟主机的配置 conf 中加入伪静态规则:

location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } ...

修改树莓派交换分区 SWAP 的正确姿势

树莓派实验室按:Swap分区是磁盘上的一个特殊用途的分区。是当系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
分配太多的Swap空间,会浪费磁盘空间,而Swap空间太少,则系统会发生错误。一般在内存小于2G的情况下,交换分区应为内存的2倍。对于树莓派来说,可以设置为2GB。当然也需要考虑 microSD 卡容量和使用情况。

错误的做法

下面是错误的做法!错误的做法!错误的做法!重要的事情说三遍!!!

一直以来,我以为树莓派的 swap 和普通 linux 的差不多,也就照着某些网站上的方法修改树莓派的交换分区大小。

熟悉的套路开始了!

首先,查看内存大小:

$ free -m
total used free shared buff/cache available
Mem: 976 35 226 12 714 864
Swap: 99 0 99

然后:

$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=102400
$ sudo mkswap /swapfile
$ sudo chown root:root /swapfile
$ sudo chmod 0600 /swapfile
$ sudo swapon /swapfile
$ sudo vi /etc/fstab

接着,添加以下内容到fstab文件尾:

/swapfile swap swap defaults 0 0 ...

树莓派网络存储(NAS) OpenMediaVault 安装配置


OpenMediaVault,是一个开源的基于 Debian Linux 的下一代网络附加存储(NAS)解决方案。它包含众多服务,如 SSH、(S)FTP、SMB / CIFS、DAAP 媒体服务器、RSync、BitTorrent 客户机等。并具有通过插件可增强的模块化设计框架特性。其核心如下:

  • Debian Linux(Squeeze)系统(i386 or x64)
  • 基于Web方式的系统管理
  • 通过Debian软件包简单的系统升级
  • 用户管理
  • 计划任务
  • 多语言支持(0.4.18版支持繁体中文)
  • 基于DNS-SD(Apple’s protocol)的服务公告
  • 插件系统

下面介绍如何在树莓派上安装配置 OpenMediaVault,方便快捷地搭建 NAS。

一.准备工作

1.树莓派1/2/3型 开发板(我用的是3B),适配的5V2A电源;
2.TF卡(不小于4G),TF 读卡器,/boot (vfat)占55.95MB,OWN (ext4) 占3.18GB
3.一台PC,Windows系统。
4.一台显示器或都电视机,HDMI接口,HDMI线。(其实不用显示设备也是可以的,可以SSH在电脑端操作。
5.一块移动硬盘,最好再配个有源USB-Hub
6.TF镜像。找到对应Pi的型号的镜像,omv_2.2.5_rpi2_rpi3.img.gz 或 omv_2.0.15_rpi_rpi2.img.gz 。
下载地址:https://sourceforge.net/projects/openmediavault/files/Raspberry%20Pi%20images/
或者百度网盘(密码: t8gm)。
7.镜像读写工具 win32diskimager
8.磁盘分区工具 DiskGenius
9.远程SSH PuTTY

二.刷系统