Linux 磁盘分区管理(CentOS+Ubuntu)

Summary: Author: 张亚飞 | 阅读时间: 8 minute read | Published: 2014-08-02
Filed under Categories: DevOpsTags: Linux, Server, Software, DevOps,

查看系统挂载磁盘

sudo fdisk -l

Disk /dev/vda: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders, total 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00089edc

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    52426751    26212352   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f3896

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1              63     4192964     2096451   82  Linux swap / Solaris

Disk /dev/vdc: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008b4e8

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1              63   104856254    52428096   83  Linux

由结果可以看到该系统一共挂载了三个分区分别是 [/dev/vda1:系统盘|/dev/vdb1:swap交换分区|/dev/vdc1:数据盘]

格式化分区

  • 格式化为ext4文件格式(需要手动取消已挂载的分区):
sudo mkfs.ext4 /dev/vdc1
  1. 手动挂载
sudo mount -t ext4 /dev/vdc1 /data
  1. 手动取消挂载
sudo umount /dev/vdc1
  1. 自动挂载
echo '/dev/vdc1 /data ext4 defaults 0 0' >> /etc/fstab

常见磁盘错误

如果有提示:

sudo fdisk -l
Disk /dev/xvdb doesn't contain a valid partition table

说明数据盘 /dev/xvdb 还没有分区和挂载,如果需要对数据盘进行重新分区格式化,执行命令 sudo fdisk /dev/xvdb 挂载阿里云数据硬盘.完毕之后,我们在输入 fdisk -l,已经可以看到数据盘 50GB 已经被分区.

coam@iZ28pk9amqtZ:/$ sudo fdisk /dev/xvdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x4a27e761.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n                                                     ===========> 这里输入n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p                                                       ===========> 这里输入p
Partition number (1-4, default 1): 1                                        ===========> 这里输入1
First sector (2048-104857599, default 2048):                                ===========> Enter
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):  ===========> Enter
Using default value 104857599

Command (m for help): wq                                                    ===========> 这里输入wq保存设置 
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

coam@iZ28pk9amqtZ:/$ sudo fdisk -l

Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000da36d

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048    83884031    41940992   83  Linux

Disk /dev/xvdb: 53.7 GB, 53687091200 bytes
22 heads, 22 sectors/track, 216647 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4a27e761

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1            2048   104857599    52427776   83  Linux
  • 为分区指定文件系统

下面对分区进行格式化,我们将分区格式化为ext4文件系统.

sudo mkfs -t ext4 /dev/xvdb1  #格式化分区/dev/xvdb1并指定文件系统为ext4  

或者

mkfs.ext4 /dev/xvdb
echo '/dev/xvdb /home ext4 defaults 0 0' >> /etc/fstab
mount -a
  • mkfs.ext4 意思是格式化出一个 ext4 的文件格式

  • /dev/xvdb 意思是格式化这个挂载点的云盘

  • /home 意思是挂载到 /home 目录,适用于各种编译一键包(Lnmp,Linux 运维,AMH 等), /www 则适用于 yum install /apt install 安装的一键包,具体按你的网站目录而定.

  • mount -a 是自动挂载 /etc/fstab 里面的东西.如果没有修改 fstab 增加新的东西那就肯定没输出. mount -a 会忽略所有已经完成的操作,也就是开机时 fstab 已经挂载后,而且你没有修改 fstab .你再运行 mount -a ,他会自动忽略全部 fstab 内容.

  • 可以使用 df -hT 查看分区使用的文件系统,我们可以看到Disk /dev/xvda使用的文件系统就是ext4,所以我们将 /dev/xvdb1 也格式化为同样的ext4文件系统

coam@iZ28pk9amqtZ:/$ sudo df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  486M  4.0K  486M   1% /dev
tmpfs          tmpfs     100M  408K   99M   1% /run
/dev/xvda1     ext4       40G   13G   26G  33% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     497M     0  497M   0% /run/shm
none           tmpfs     100M     0  100M   0% /run/user
/dev/xvdb      ext4       50G   52M   47G   1% /data

最后使用命令检查是否挂载成功

注:/etc/fstab 文件,描述磁盘挂载详情

如果已挂载分区,需要卸载,可以使用命令 umount /home 来卸载

一般会出现 umount: /home: device is busy

这个时候使用命令检查相应的使用进程并关闭

fuser -m -v /home
kill -9 pid

再次重新卸载

umount /home

  • mount: mount point /data does not exist

解决:需要先创建 /data 文件夹才能挂载


Ubuntu16.04 桌面版挂载 Windows NTFS 磁盘问题

  • 安装了Ubuntu16.04桌面版后,使用 Nginx 创建软连接映射到 window 格式的磁盘,或者直接指向 window 挂载分区,访问网站提示 File Not Found.错误

刚开始以为是 Nginx 下的软连接问题,于是在 Nginx server{} 手动配置如下软连接配置

server{
    location / {
        disable_symlinks off;
        autoindex on;
    }
}

仍无效

按如下配置将root 目录直接指向 window 磁盘分区无效:

server{
    root       /media/yafer/DA2EC938300685EA/CoamDevRoot/cheyoo/applications/manage;
}

查看 Nginx 日志文件 /var/log/nginx/error.log 发现如下错误:

2016/06/14 12:38:59 [crit] 5353#5353: *1 stat() "/media/yafer/DA2EC938300685EA/CoamDevRoot/cheyoo/applications/manage/index/index.html" failed (13: Permission denied), client: 127.0.0.1, server: manage.cy.com, request: "GET /index/index.html HTTP/1.1", host: "manage.cy.com", referrer: "http://manage.cy.com/"
2016/06/14 12:38:59 [crit] 5353#5353: *1 stat() "/media/yafer/DA2EC938300685EA/CoamDevRoot/cheyoo/applications/manage/index/index.html" failed (13: Permission denied), client: 127.0.0.1, server: manage.cy.com, request: "GET /index/index.html HTTP/1.1", host: "manage.cy.com", referrer: "http://manage.cy.com/"
2016/06/14 12:38:59 [crit] 5353#5353: *1 stat() "/media/yafer/DA2EC938300685EA/CoamDevRoot/cheyoo/applications/manage/index.php" failed (13: Permission denied), client: 127.0.0.1, server: manage.cy.com, request: "GET /index/index.html HTTP/1.1", host: "manage.cy.com", referrer: "http://manage.cy.com/"
2016/06/14 12:38:59 [error] 5353#5353: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: manage.cy.com, request: "GET /index/index.html HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "manage.cy.com", referrer: "http://manage.cy.com/"

貌似是权限不够,于是重复修改并检查该目录所有权限

sudo chmod -R 777 *
sudo chown yafer.yafer -R *

仍无效,貌似权限不能修改,于是通过一番查找,网上说 通过系统挂载的window下磁盘默认都没有写权限(突然联想到前天安装测试 lsyncd 测试失败,可能也是该同步的 window 磁盘没有写权限所致)

使用如下命令讲 windo磁盘手动挂载到用户的一个目录

I did this and it worked:

sudo umount /dev/sda3 /media/windows1

and then

sudo mount -o rwx /dev/sda5 /media/windows1

Note that I am Using Ubuntu 11.10 and sda3 is my Windows C:, sda5 is G:.

发现解决了问题,但是也不能每次都手动卸载挂载磁盘啊,于是按如下添加一行 /dev/sda1 /home/yafer/windows/e ntfs defaults,utf8,uid=1000,gid=1000,dmask=000,fmask=133 0 0/etc/fstab

df -h
sudo vi /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb3 during installation
UUID=ad727bb3-2f3f-44f6-b7ce-685ae1b80850 /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sdb2 during installation
UUID=819ba04b-db1e-4d0b-90c3-3d4f292467f5 /boot           ext4    defaults        0       2
# /home was on /dev/sdb5 during installation
UUID=4d8628a7-9565-41ec-833f-63f8849e58ed /home           ext4    defaults        0       2
# swap was on /dev/sdb6 during installation
UUID=8cb1c04a-ee0d-4eb8-b980-762281900fa4 none            swap    sw              0       0
# win was on /dev/sda1 -> e/ during installation
#UUID=4d8628a7-9565-41ec-833f-63f8849e58ed /home/yafer/windows/e            ntfs    defaults,utf8,dmask=022,fmask=133              0       0
/dev/sda1 /home/yafer/windows/e ntfs defaults,utf8,uid=1000,gid=1000,dmask=000,fmask=133 0 0

其中配置 dmask=000 是指挂载ntfs后将其权限设为完全权限 重启即可

参考 * Module ngx_http_core_module * Make Nginx follow symlinks * Can’t change permission/ownership/group of external hard drive on Ubuntu * ubuntu开机自动挂载的ntfs硬盘的权限问题(很重要啊)


磁盘扩容

腾讯云服务器数据盘 20G 扩容到 50G 后,系统仍然显示可用 20G,如下:

$ sudo fdisk -l
[sudo] password for coam:
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x89ee0607

Device     Boot Start       End   Sectors Size Id Type
/dev/vda1  *     2048 104857566 104855519  50G 83 Linux


Disk /dev/vdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
$ df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs          tmpfs     1.9G  512K  1.9G   1% /run
tmpfs          tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1      ext4       50G  9.3G   38G  20% /
/dev/vdb       ext4       20G   15G  3.7G  81% /data
tmpfs          tmpfs     378M     0  378M   0% /run/user/1000

下面为扩容流程

  • 卸载挂载点
umount /data

用户目录需取消开机挂载

/etc/fstab

#/dev/vdb /data ext4 defaults 0 0
  • 下载工具
wget -O /tmp/devresize.py https://raw.githubusercontent.com/tencentyun/tencentcloud-cbs-tools/master/devresize/devresize.py
  • 使用扩容工具进行扩容
$ sudo python2 /tmp/devresize.py /dev/vdb
[INFO] - checking filesystem healthy
/dev/vdb: 192019/1310720 files (0.1% non-contiguous), 4008722/5242880 blocks
This operation will extend /dev/vdb to the last sector of device.
To ensure the security of your valuable data,
please create a snapshot of this volume before resize its file system, continue? [Y/n]
Y
It will resize (/dev/vdb).
This operation may take from several minutes to several hours, continue? [Y/n]
Y
[INFO] - No need to resize partition, try to resize filesystem
[INFO] - resize filesystem
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /dev/vdb to 13107200 (4k) blocks.
The filesystem on /dev/vdb is now 13107200 (4k) blocks long.

[INFO] - Finished
  • 重新挂载
mount

用户目录需开机挂载

/etc/fstab

/dev/vdb /data ext4 defaults 0 0

重启后生效

参考


为 Linux 系统创建交换分区

  • 使用 make 命令编译 Mysql 或 其它操作出现如下问题
virtual memory exha.usted: Cannot allocate memory
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2

表示内存耗尽,一般原因是内存比较小,有时候 通过 make -j2 编译的时候也会出现类似的问题,需要给系统分配交换分区 swap

  • Step 1: Verify that swap does not exist

To prevent any issues during this tutorial, you will need to run the following to verify that a swap space is currently not active:

free -m

After running that command you should see something similar to this output:

total              used       free     shared    buffers     cached
Mem:               1840       1614     226       15          36       1340
-/+ buffers/cache:            238      1602
Swap:              0          0        0

If you see a value of 0 in the Swap section, then you can proceed to step 2.

Alternatively, you can run the following command to see if there is a configured swap file:

swapon -s

If you do not see any output from swapon, then proceed to step 2.

  • Step 2: Create swap file

You will need to choose a location for your file. In this tutorial, it will be stored at the root of the server. We will create a 2GB swap file by running the following command:

dd if=/dev/zero of=/swapfile count=2048 bs=1M

The dd command will produce output in a similar format to:

2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 10.5356 s, 204 MB/s

Next, verify that the file is located at the root of your Vultr VPS by running:

ls / | grep swapfile

Proceed if you see the swapfile file.

  • Step 3: Activate the swap file

Swap files are not recognized automatically. We will need to tell the server how to format the file and enable it so it can be used as a valid swap file. As a security measure, update the swapfile permissions to only allow R/W for root and no other users. Run:

chmod 600 /swapfile

The permission change can be verified by running the following command:

ls -lh /swapfile

You will see a file display:

-rw------- 1 root root 2.0G Oct  2 18:47 /swapfile

Next, tell the server to setup the swap file by running:

mkswap /swapfile

After running it, you will see the following output:

Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=ff3fc469-9c4b-4913-b653-ec53d6460d0e

If everything is shown as above, you are now ready to move on to the next step.

  • Step 4: Turn swap on

Once your file is ready to be used as swap, you need to enable it by running:

swapon /swapfile

You can verify that the swap file is active by running the free command again.

free -m

total       used       free     shared    buffers     cached
Mem:          1840       1754         86         16         23       1519
-/+ buffers/cache:        210       1630
Swap:         2047          0       2047

If Swap shows something other than 0, then you have successfully setup swap.

  • Step 5: Enable swap on reboot

By default, your server will not automatically enable this new swap file. To enable it on boot, you can update the /etc/fstab file. Any text editor will suffice. In this example, I will be using nano.

nano /etc/fstab

Add the following line at the end of the file:

/swapfile   none    swap    sw    0   0

Save and close when you are finished editing the file. We are all done!


大家都知道很多VPS服务商提供的操作系统默认都没有SWAP,对于小内存的机器来说,添加swap如果升级配置一般,再也没有宕机的烦恼了,本篇以Ubuntu Server 14.04系统作为演示:

1.创建一个空的swap文件:

sudo install -o root -g root -m 0600 /dev/null /swapfile

2.填充 1GB 至文件名为 swapfile 的文件中:

dd if=/dev/zero of=/swapfile bs=1k count=1024k

如果你的VPS是1G内存,那么可以添加2G的swap:

//dd if=/dev/zero of=/swapfile count=2048 bs=1M
dd if=/dev/zero of=/swapfile bs=1k count=2048k

3.告诉Linux,这是swap文件:

mkswap /swapfile

4.激活 swap:

swapon /swapfile

5.添加至文件系统表中,这样重启后系统才能找到它:

echo "/swapfile       swap    swap    auto      0       0" | sudo tee -a /etc/fstab

6.设置 swappiness 至 10,这样它只在急需内存时才会被使用:

sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

其实,可以将以上命令写在一起,本站的创建方法是:

sudo install -o root -g root -m 0600 /dev/null /swapfile
dd if=/dev/zero of=/swapfile bs=1k count=1024k
mkswap /swapfile
swapon /swapfile
echo "/swapfile       swap    swap    auto      0       0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

如果要修改或者删除这个 swapfile 文件,需要先卸载这个 swapfile.进入到 swap 目录,然后终端输入:

sudo swapoff swapfile

这就卸载了 swapfile 文件就可以删除了,否则会提示正在使用或忙 无法删除.

接下来是优化swap的使用参数,linux 里有个参数 swappiness.当值为0时最大限度的使用物理内存,物理内存使用完后再使用swap内存.为100时,最大限度的使用swap,并将内存中的数据也要搬到swap里处理,这是两个极端.默认的参数是60,根据这里将其改为10较优.步骤如下: 1,查看当前的 swappiness 终端输入:

cat /proc/sys/vm/swappiness

2.修改 swappiness 值为10

$ sudo sysctl vm.swappiness=10

但是这只是临时性的修改,在你重启系统后会恢复默认的60,所以,还要做一步:

$ sudo gedit /etc/sysctl.conf

在这个文档的最后加上这样一行:

vm.swappiness=10

然后保存,重启.


Ubuntu 调整 swap 分区大小

服务器内存 4G 以下,交换分区空间为内存 2-4 倍;服务器内存 4G 以上,交换分区空间为内存 1 倍; vm.swappiness=10 比较合适;

  • 主要步骤:
# sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file        1048572 0   -1
# sudo swapoff /swapfile
# sudo fallocate -l 4G /swapfile
# sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=fb0aadaf-b52f-4928-b57f-c60ef7a0bd49
# sudo swapon /swapfile
# sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file        4194300 0   -1
  • 将服务器交换分区从 2g 调到 4g 的操作示例:
  1. 调整前查看磁盘空间.
Mon Jan 07 21:33:08 coam@a.us.1:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           395M  652K  394M   1% /run
/dev/vda1        99G   71G   24G  76% /
tmpfs           2.0G  4.0K  2.0G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           395M     0  395M   0% /run/user/1000
Mon Jan 07 21:36:29 coam@a.us.1:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.9G        2.2G        553M         64M        1.1G        1.4G
Swap:          2.0G          0B        2.0G
  1. 调整交换分区.
Mon Jan 07 21:36:56 coam@a.us.1:~$ sudo swapon -s
Filename				Type		Size	Used	Priority
/swapfile                              	file    	2097148	0	-2
Mon Jan 07 21:40:13 coam@a.us.1:~$ sudo swapoff /swapfile
Mon Jan 07 21:40:34 coam@a.us.1:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.9G        2.2G        527M         64M        1.1G        1.3G
Swap:            0B          0B          0B
Mon Jan 07 21:40:37 coam@a.us.1:~$ sudo fallocate -l 4G /swapfile
Mon Jan 07 21:40:48 coam@a.us.1:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.9G        2.1G        581M         64M        1.1G        1.4G
Swap:            0B          0B          0B
Mon Jan 07 21:40:54 coam@a.us.1:~$ sudo mkswap /swapfile
mkswap: /swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=814079b1-eff1-4de5-8183-c8afbd01e84d
Mon Jan 07 21:41:01 coam@a.us.1:~$ sudo swapon /swapfile
Mon Jan 07 21:41:14 coam@a.us.1:~$ sudo swapon -s
Filename				Type		Size	Used	Priority
/swapfile                              	file    	4194300	0	-2
  1. 处理完检查系统磁盘空间.
Mon Jan 07 21:41:19 coam@a.us.1:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3944        2211         568          64        1165        1420
Swap:          4095           0        4095
Mon Jan 07 21:41:25 coam@a.us.1:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           395M  736K  394M   1% /run
/dev/vda1        99G   73G   22G  78% /
tmpfs           2.0G  4.0K  2.0G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           395M     0  395M   0% /run/user/1000

kswapd0 占用过高的问题.

设置 vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区,默认的值是60

调整内存参数,当内存使用率不足10%(开始是默认值60)时在使用swap,尽量避免使用swap,减少唤醒软中断进程,从而降低 ksoftirqd 进程对cpu的占用.


参考列表 * https://www.vobe.io/98?spm=5176.7189909.0.0.JTKUyp * http://www.laozuo.org/5080.html * http://www.jb51.net/os/RedHat/1051.html

Comments

Cor-Ethan, the beverage → www.iirii.com