IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ubuntu + nextcloud配置家庭NAS服务器 -> 正文阅读

[系统运维]Ubuntu + nextcloud配置家庭NAS服务器

家中折腾NAS服务器:

  1. 硬件:E5双路40核,内存64G DDR4, 存储128G固态硬盘装系统,阵列卡+6TB * 4企业级SAS硬盘组RAID10作为NAS数据存储
    在这里插入图片描述
  2. 系统:Ubuntu 22.04 Server
  3. 软件:nextcloud(可道云客户端不支持多文件夹同步),使用docker配置,volume设置到RAID10阵列盘,即使所有的软件系统崩溃,依旧可以轻松恢复。

只做NAS不用这么高配置,我是打算同时用来做应用服务器

阵列卡设置

插了阵列卡后,开机会先进阵列卡的BIOS,按提示按CTRL+H进入web配置界面,按提示配置好RAID10,插上系统安装U盘,重启电脑

系统安装配置

这一步简单,直接镜像写入U盘,从U盘启动,配置好系统盘,按提示一步步安装即可。

网络配置

需要固定IP地址:
修改/etc/netplan/***.yml,假如你的内网是10.10.10.*

network:
  ethernets:
    enp5s0:
      dhcp4: false
      addresses: [10.10.10.10/24]
      gateway4: 10.10.10.1
      nameservers:
        addresses: [10.10.10.1,114.114.114.114,8.8.8.8]
      optional: true
  version: 2

执行netplan apply命令,会有一个gateway4弃用警告,可以不管。
执行apt update && apt upgrade -y更新系统

配置无显卡启动

直接拔了显卡,Ubuntu会启动失败,甚至可能出现重新插上同一张显卡后依旧无法正常启动的现象。
修改/etc/default/grub来实现无显卡启动

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
GRUB_CMDLINE_LINUX=""

接下来的操作可以从家中另外一台电脑通过SSH远程连接服务器配置,只需要允许root用户远程登录:
修改etc/ssh/sshd_config

PermitRootLogin yes

重启ssh服务:service sshd restart

当远程连接失败,需要显示的时候,重新插上显卡,启动系统

挂载RAID10盘

先建立分区,因为容量是惊人的10T,哈哈,所有不能用fdisk,需要使用parted创建GPT分区。
详见:Making GPT Partition Table and Creating Partitions Using parted in Linux

完成后格式化:`mkfs.ext4 /dev/disk_name

修改/etc/fstab挂载RAID10盘到任意位置,我这里挂载到/docker

/dev/disk/by-uuid/disk_uuid /docker ext4 defaults,nofail 0 1

安装docker

  1. 安装docker:apt install -y docker.io
  2. 安装docker-compose:apt install -y docker compose

配置docker数据路径

默认是在/var/lib/docker,里面包含docker的数据,最重要是volume是存在下面的,显然不满足作为NAS的需求,谁没事把大量数据往系统盘存:)

直接创建或修改/etc/docker/daemon.json

{
    "data-root": "/path/to/raid10/mount/point"
}

重启docker:service docker restart

配置nextcloud

因为nextcloud是用MySQL来存元数据的,所有会依赖MySQL服务,这里用了mariadb
可以参考: nextcloud offical image
创建编辑docker-compose.yml

version: '2'

volumes:
  app:
  db:

services:
  db:
    image: mariadb:10.5
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=mysql_password
      - MYSQL_PASSWORD=mysql_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8070:80
    links:
      - db
    volumes:
      - app:/var/www/html
    environment:
      - MYSQL_PASSWORD=mysql_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

保存后,执行docker-compose up -d

配置host Nginx反向代理

为了使用域名而不是IP访问NAS,这里使用Nginx来做反向代理

server_name nas.your.base_domain;
location / {
  proxy_pass http://10.10.10.10:8070/;
}

自定义路由器hosts

电脑可以通过修改hosts文件来映射域名和IP,但手机却不容易办到,开始是想着自己搭个DNS服务器,但发现小米路由器可以自定义hosts,这样连接这台路由器的设备就都能解析自定义的域名了。这么折腾主要是后续计划配置外网访问,域名已经在阿里云申请,搞个外网IPv6一解析,不在家也能访问自己的NAS,但回家后,就希望依旧用域名,但又不是走外网。

成果

这还要什么网盘,哈哈。
在这里插入图片描述
在这里插入图片描述

后续

这里使用了硬件RAID,阵列卡要是坏了,又买不到相同型号的,就有丢失数据的风险,所以后续打算更改为软件RAID,更灵活,出错了更容易恢复。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:56:36  更:2022-10-22 21:58:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:21:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码