20260518 Swift实验 Swift实验控制节点新添加一块20GB磁盘新添磁盘分成两个区并格式化分区一挂载到obs1目录分区二挂载到obs2目录[rootcontroller ~11:45:09]# fdisk /dev/sdbWelcome tofdisk(util-linux2.32.1). Changes will remaininmemory only,untilyou decide towritethem. Be careful before using thewritecommand. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xb5fb75bc. Command(mforhelp): n Partitiontypep primary(0primary,0extended,4free)e extended(containerforlogical partitions)Select(default p): p Partition number(1-4, default1):1First sector(2048-41943039, default2048): Last sector, sectors or size{K,M,G,T,P}(2048-41943039, default41943039): 10G Created a new partition1oftypeLinuxand of size10GiB. Command(mforhelp): n Partitiontypep primary(1primary,0extended,3free)e extended(containerforlogical partitions)Select(default p): p Partition number(2-4, default2):2First sector(20973568-41943039, default20973568): Last sector, sectors or size{K,M,G,T,P}(20973568-41943039, default41943039): Created a new partition2oftypeLinuxand of size10GiB. Command(mforhelp): p Disk /dev/sdb:20GiB,21474836480bytes,41943040sectors Units: sectors of1*512512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes Disklabel type: dos Disk identifier: 0xb5fb75bc Device Boot Start End Sectors Size Id Type /dev/sdb12048209735672097152010G83Linux /dev/sdb220973568419430392096947210G83Linux Command(mforhelp): w The partition table has been altered. Calling ioctl()to re-read partition table. Syncing disks.将两个分区格式化为xfs格式[rootcontroller ~11:46:01]# mkfs.xfs /dev/sdb1meta-data/dev/sdb1isize512agcount4,agsize655360blkssectsz512attr2,projid32bit1crc1finobt1,sparse1,rmapbt0reflink1bigtime0inobtcount0databsize4096blocks2621440,imaxpct25sunit0swidth0blks namingversion2bsize4096ascii-ci0,ftype1loginternal logbsize4096blocks2560,version2sectsz512sunit0blks, lazy-count1realtimenoneextsz4096blocks0,rtextents0[rootcontroller ~11:46:17]# mkfs.xfs /dev/sdb2meta-data/dev/sdb2isize512agcount4,agsize655296blkssectsz512attr2,projid32bit1crc1finobt1,sparse1,rmapbt0reflink1bigtime0inobtcount0databsize4096blocks2621184,imaxpct25sunit0swidth0blks namingversion2bsize4096ascii-ci0,ftype1loginternal logbsize4096blocks2560,version2sectsz512sunit0blks, lazy-count1realtimenoneextsz4096blocks0,rtextents0下面为默认挂给swift的虚拟设备分区将其卸载[rootcontroller ~11:46:21]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop07:002G0loop /srv/node/swiftloopback loop17:1020.6G0loop ├─cinder--volumes-cinder--volumes--pool_tmeta │253:3020M0lvm │ └─cinder--volumes-cinder--volumes--pool │253:5019.6G0lvm └─cinder--volumes-cinder--volumes--pool_tdata253:4019.6G0lvm └─cinder--volumes-cinder--volumes--pool253:5019.6G0lvm sda8:00200G0disk ├─sda18:101G0part /boot └─sda28:20199G0part ├─cs-root253:0070G0lvm / ├─cs-swap253:103.9G0lvm[SWAP]└─cs-home253:20125.1G0lvm /home sdb8:16020G0disk ├─sdb18:17010G0part └─sdb28:18010G0part sr011:0112.8G0rom[rootcontroller ~11:46:25]# umount /srv/node/swiftloopback #卸载原来的swift虚拟设备分区[rootcontroller ~11:48:57]# cd /srv/node #切换到swift目录[rootcontrollernode11:49:04]# lsswiftloopback[rootcontrollernode11:49:05]# rm -rf swiftloopback/ #删除原来的swift挂载目录[rootcontrollernode11:49:11]# mkdir ob1 ob2 #创建新的挂载目录分别挂载sdb1,sbd2配置挂载文件将obs1–sdb1,obs2–sdb2分别挂载关联[rootcontroller node]# vim /etc/fstab #下面三行话一句注释两句添加#/srv/loopback-device/swiftloopback /srv/node/swiftloopback ext4noatime,nodiratime,nofail,loop,user_xattr00/dev/sdb1 /srv/node/obs1 xfs defaults00/dev/sdb2 /srv/node/obs2 xfs defaults00[rootcontroller node]# mount -a #挂载mount:(hint)your fstab has been modified, but systemd still uses the old version;usesystemctl daemon-reloadto reload.[rootcontroller node]# df #查看现象Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs3904608039046080% /dev tmpfs3924792439247881% /dev/shm tmpfs39247921765239071401% /run tmpfs3924792039247920% /sys/fs/cgroup /dev/mapper/cs-root7336448068671046649737610% / /dev/mapper/cs-home1310816929469641301347281% /home /dev/sda1103833623412480421223% /boot tmpfs78495607849560% /run/user/0 /dev/sdb110475520106088103694322% /srv/node/obs1 /dev/sdb210474496106088103684082% /srv/node/obs2修改obs1目录和obs2目录权限[rootcontroller node]# chown swift:swift obs1[rootcontroller node]# chown swift:swift obs2[rootcontroller node]# lltotal0drwxr-xr-x2swift swift6Sep2914:04 obs1 drwxr-xr-x2swift swift6Sep2914:04 obs2创建swfit ring[rootcontroller node]# cd /etc/swift/[rootcontroller swift]# lsaccount.builder account-server.conf container-reconciler.conf containerserver.conf object-expirer.conf object-server.conf swift.conf account.ring.gz backups container.ring.gz internalclient.conf object.ring.gz proxy-server account-server container.builder container-server object.builder object-server proxy-server.conf[rootcontroller swift]# swift-ring-builder container.builder create --helpswift-ring-builderbuilder_filecreatepart_powerreplicasmin_part_hoursCreatesbuilder_filewith2^part_powerpartitions andreplicas.min_part_hoursis number of hours to restrict moving a partitionmorethan once.[rootcontroller swift]# swift-ring-builder container.builder create 12 2 1[rootcontroller swift]# swift-ring-builder account.builder create 12 2 1[rootcontroller swift]# swift-ring-builder object.builder create 12 2 1#12表示ring分区数量为2^12#2表示2个副本#1表示最少1个小时后才能更改ring配置创建ring映射关系#查看配置文件分别查看account,containerobeject的bind_port记录下来[rootcontroller swift]# cat account-server.conf | grep bind_portbind_port6002[rootcontroller swift]# cat container-server.conf | grep bind_portbind_port6001[rootcontroller swift]# cat object-server.conf | grep bind_portbind_port6000[rootcontroller swift]# swift-ring-builder account.builder add z1-192.168.108.10:6002/obs1100WARNING: No region specifiedforz1-192.168.108.10:6002/obs1. Defaulting to region1.[rootcontroller swift]# swift-ring-builder account.builder add z2-192.168.108.10:6002/obs2100[rootcontroller swift]# swift-ring-builder container.builder add z1-192.168.108.10:6001/obs1100[rootcontroller swift]# swift-ring-builder container.builder add z2-192.168.108.10:6001/obs2100[rootcontroller swift]# swift-ring-builder object.builder add z1-192.168.108.10:6000/obs1100[rootcontroller swift]# swift-ring-builder object.builder add z2-192.168.108.10:6000/obs2100再平衡[rootcontroller swift]# swift-ring-builder account.builder rebalanceReassigned8192(200.00%)partitions. Balance is now0.00. Dispersion is now0.00[rootcontroller swift]# swift-ring-builder object.builder rebalanceReassigned8192(200.00%)partitions. Balance is now0.00. Dispersion is now0.00[rootcontroller swift]# swift-ring-builder container.builder rebalanceReassigned8192(200.00%)partitions. Balance is now0.00. Dispersion is now0.00