Several months ago I had an old 3TB hard drive (HDD) crashed on me. Luckily it was a hard drive that is primarily used for backup purposes, so the data lost can quickly be duplicated from source by performing another backup. Since it was not critical that I replace the damaged drive immediately, it was kind of left to fester until today.
Recently I acquired four additional WD Red 6TB HDD, and I wanted to install these new drives into my NAS chassis. Since I am opening the chassis, I will irradicate the damaged drive, and also take this opportunity to swap some old drives out of the ZFS pool that I created earlier and add these new drives into the pool.
I first use the following command to add two additional mirror vdev’s each composed of the two new WD Red drives.
The drive id’s is located in the following path: /dev/disk/by-id and is typically prefixed with ata or wwn.
This created two vdev’s into the pool, and I can remove an existing vdev. Doing so will automatically start redistributing the data on the removing vdev to the other vdev’s in the pool. All of this is performed while the pool is still online and running to service the NAS. To remove the old vdev, I execute the following command:
sudo zpool remove vault {vdev_name}
In my case, the old vdev’s name is mirror-5.
Once the remove command is given, the copying of data from the old vdev to the other vdev’s begins. You can check the status with:
sudo zpool status -v vault
The above will show the copying status and the approximate time it will take to complete the job.
Once the removal is completed, the old HDD of mirror-5 is still labeled for ZFS use. I had to use the labelclear command to clean the drive so that I could repurpose the drives for backup duty. Below is an example of the command.
The above indirect-5 can be safely ignored. It is just a reference to the old mirror-5.
This time we replaced the entire vdev, another technique is to replace the actual drives within the vdev. To do this, we will have to use the zpool replace command. We may also have to perform a zpool offline first before the replace command. This can be successively done on all the old drives in the mirror with newer drives with larger capacities to increase an existing vdev’s size.
In a previous post, I talked about switching our electricity rates from a tiered rate schedule to an Ultra Low Overnight (ULO) rate schedule. The latter rate schedule effectively means we pay a third less when using electricity from 11pm to 7am.
I have received a full month’s invoice while on the ULO rate. Below is a comparison with the previous year.
The above is a clear depiction of the resulting differences. We are able to get way more credits using the ULO rates. I call this a huge success, especially since we had a few hot days with the air conditioning running. Let us see how the remaining months will add to our credits.
As of January 2024, Alectra Utilities begin to allow residential customers with net meters to take advantage of the Ultra-Low Overnight (ULO) rate schedule. Since I have plenty of battery backup, I thought this ULO pricing schedule is perfect for my solar and battery backup situation.
The idea is to use my batteries from 7am to 11pm during the non-ULO periods, and then replenish my batteries at the low $0.028 per kWh after 11pm. I also switched our two Green Vehicles to charge after 11pm.
Another great benefit of the ULO schedule is that electricity generated and feedback to the grid is credited with the increased rates. This means any surplus electricity sent back to the grid between 4pm and 9pm during the weekdays gets a premium credit of $0.286 per kWh. This is ten times more than the usage after 11pm!
After reconfiguring my solar – backup system to this new schedule, you can see from the above chart that my electricity consumption is now in alignment with the ULO schedule.
The process of switching from a Tier Rate schedule to the ULO schedule was not simple. I had to call Alectra customer support and waited for literally hours to get a staff member who was knowledgeable enough to help me with the switch.
I hope the pain is now over and we begin to reap the benefits of the ULO pricing. Let us hope that this summer we will be able to collect much more credit because of ULO.
I liken individualism to cancerous cells to society, some are malignant and some are benign. If you have too much of the former, you embark on a social evolutionary force of society that may not be sustainable. Especially malignant forces that consumes social resources and then breaks foundational bonds between individuals, acting as a divisive force in society. I would also include those who are extremely wealthy and successful individuals here, since they contribute to the income gap and their individual morals act as tribal magnets creating a divisive force.
The benign goes with the flow or fails to seek enough influence or creates enough havoc to be a social impact.
Like malignant cells group together and prosper or grow to form tribes (tumors).
My current bet (not sure), is that a society that concentrates on individualism will ultimately result in a bilateral class structure where one class dominates over the other. The stability and growth potential will then depend on the attenuation of the tension between the classes. Done correctly, the subjugated class may not feel it. Done incorrectly results in a revolution.
All forms of government must face this reality of individualism. The difference is the way in which they manage it. The big experiment of the West is they let the tumors grow. This experiment has reached the typical dynastic period of 200–300 years, so it will be interesting to see if it is still sustainable or not. In the past, there has been self imposed chemotherapies to the likes of wars that perform resets on the malignant cells, so to create more room for individualism to flourish.
On April 9th, 2024 both my wife and I hopped on a flight to Vancouver to visit some friends and family. I got an excellent deal from Expedia for TD paying $1035 CAD for 2 return trips and a rental SUV for the week. We ended up getting a fancy Nissan Rogue for the trip.
We did not do any sightseeing other than Port Moody. Our primary purpose while staying in the City of Vancouver is to sample the Chinese food in Vancouver. This means hanging out largely in Richmond and doing some dim sum.
On the fourth day of our trip, we took the BC Ferries to Vancouver Island, visiting Nanaimo for two days, and spending our final two days in Victoria. We finished the week-long trip by taking a return ferry to Tsawwassen terminal, which is close enough to Richmond for us to get another good Chinese B.B.Q pork meal at HK BBQ Master, which I highly recommend!
Our rough schedule looked something like this:
Day 1 – Fish & chips along with ice cream at Port Moody; visited Natalie’s beautiful home on the hills, and gave Zoey (her cat) a nice rub; and then to Burnaby to stay at our cousin’s place and got introduced to Maple our new, small canine friend;
Day 2 – Lunch, snacks & dinner in Richmond; love the pineapple bun with its tasty, thick, cold butter; savored the lamb served at Hao’s;
Day 3 – Dim sum at Kirin restaurant in New Westminister and catching up with Agnes; followed by dessert at La Foret Jubilee with Natalie joining us;
Day 4 – Ferry from Horseshoe Bay to Departure Bay at Nanaimo; did some hiking and scenery;
Day 7 – Hiked the Beacon’s Hill Park with a huge breakfast at Blue Fox Cafe; met a couple of new friends, one named Lynda at the cafe; visited the Butterfly Gardens; drove along the Malahat scenic views; experienced high tea at Pendray Inn and Tea House; and finally dinner at the Pagliacci’s.
Day 8 – Took the ferry back from Swartz Bay to Tsawwassen just in time to do lunch at HK BBQ Master; say goodbye to Derrick and Maple; and back on the afternoon flight to Toronto; Darci welcomed us back home at 2:00am on the following day!
The most memorable part of the trip was of course getting to meet up with our family and friends. The best food from this trip had to be from HK BBQ Master, in my opinion, with an honorable mention of the Banh-mi sandwiches that Derrick got for us from his famous Vietnamese sandwich vendor.
What would we do differently? I think knowing what we know about Nanaimo, we would probably skip all of Nanaimo1 and reallocate the days to be one more in Vancouver and an extra day in Victoria. We would also switch the order of our visit to Vancouver and the Island. This way we can spend more time during the weekend with our friends and family.
With this trip and our visit to Victoria, the capital city of British Columbia, we have completed our tour of all of the provincial capitals in Canada. Checkbox checked!
Below is a summary video produced by Carol of our trip.
About three weeks ago, I was casually browsing eBay and found this little gem, a Host Bus Adapter that can do PCIe 2.0 x8 (~4 to 8GB/s). This is way better than the one that I purchased earlier (GLOTRENDS SA3116J PCIe SATA Adapter Card) which can operate on a single lane of PCIe 3.0 yielding only 1GB/s. I could not pass it up at a price of only $ 40 CAD, so I purchased two of these to replace the old adapter card I had.
This new card LSI 6Gbps SAS HBA 9200-8i only supports 8 SATA ports per card, so I had to get two of them to support all of the hard drives that I have. These SAS HBA cards must have the IT (initiator target) mode firmware because the default firmware (IR mode) supports a version of hardware RAID, which I did not want. With the IT mode, the hard drives will be logically separated on the card and only share the physical bandwidth of the PCIe bus. This is a must for ZFS.
With these new cards, my write throughput to my NAS hard drives now averages around 500MB/s. Previously, I was only getting about half of this.
I wish I would have found these sooner. Now I have two spare PCIe SATA expansion cards, one supporting 8 ports, and the other supporting 16 ports. I will place them on another server. Perhaps in a future Proxmox cluster project.
Thanks to my cousins who also purchased Tesla using my Tesla referral code, I have some referral credits that I can use to select a 3 months trial of Tesla’s Full Self Driving (FSD) capability. On March 1st, 2024, I turned this feature on.
It was pretty easy to set up. After agreeing with all the legal stuff and enable the feature, I just set the destination, set it to drive mode, wait for the autopilot icon to show, and double tap the right stalk and away we go!
There are three settings to FSD: chill, average, aggressive/assertive. I just left it on the default, average mode.
Pulling out of the driveway, the car was a bit jerky, but once it got on the road, it made all the right decisions. I override the mode on our neighbourhood feeder road from Leslie Street just to make sure that I can override the mode, and then quickly re-engage the FSD.
On this occasion, all traveling was done on regular roads, no highways, so it was more challenging for the car. It made all the turns correctly, but I did have to override it once when it did not recognize the restricted Via Bus Lane on Yonge Street. It even pulled into the parking area at Mr. Congee, but did not fully complete the trip by parking the car. I had to park it manually.
On the way back, it hesitated too much on a left-hand turn. I had to press the accelerator to help it along. Doing this did not override the FSD mode.
I will be driving to Montreal in about 4 weeks, so I will be looking forward to testing FSD on the highway.
My initial assessment is that I probably would not have paid any more money to gain this feature. Once again, thanks to my cousins who allowed me to experience this through the use of my Tesla redemption credits.
In a previous post, I described the hardware changes that I made to facilitate additional drive slots on my NAS Media Server.
We now need to migrate from an LVM system consisting of 40TB of redundant mirrored storage using mdadm to a ZFS system consisting of a single pool and a dataset. Below is a diagram depicting the logical layout of the old and the intended new system.
Before the migration, we must backup all the data from the LVM system. I cobbled together a collection of old hard drives and then proceeded to create another LVM volume as the temporary storage of the content. This temporary volume will not have any redundancy capability, so if any one of the old hard drives fails, then out goes all the content. The original LVM system is mounted on /mnt/airvideo and the temporary LVM volume is mounted on /mnt/av2.
I used the command below to proceed with the backup.
I can then monitor the progress of the backup with:
tail -f ~/nohup.avs.rsync.out
The backup took a little more than 7 days to copy around 32 TB of data from our NAS server. During this entire process, all of the NAS services continued to run, so that downtime was almost non-existent.
Once the backup is completed, I wanted to move all the services to the backup before I started to dismantle the old LVM volume. The following steps were done:
Stop all services on other machines that were using the NAS;
Stop all services on the NAS that were using the /mnt/airvideo LVM volume;
Remove or comment out the entry in the /etc/fstab file that automatically mounts the old LVM volume on boot. This is no longer necessary because ZFS is remounted by default;
Now that the services are all up and running, we can then start destroying the old LVM volume (airvideovg2/airvideo) and volume group (airvideovg2). We can obtain a list of all the physical volumes that make up the volume group.
The /dev/mdX devices are the mdadm mirror devices, each consisting of a pair of hard drives.
sudo lvremove airvideovg2/airvideo
Do you really want to remove and DISCARD active logical volume airvideovg2/airvideo? [y/n]: y
Flushing 0 blocks for cache airvideovg2/airvideo.
Do you really want to remove and DISCARD logical volume airvideovg2/lv_cache_cpool? [y/n]: y
Logical volume "lv_cache_cpool" successfully removed
Logical volume "airvideo" successfully removed
sudo vgremove airvideovg2
Volume group "airvideovg2" successfully removed
At this point, both the logical volume and the volume group are removed. We say a little prayer to ensure nothing happens with our temporary volume (/mnt/av2), that is currently in operation.
We now have to disassociate the mdadm devices from LVM.
sudo pvremove /dev/md1
Labels on physical volume "/dev/md1" successfully wiped.
sudo pvremove /dev/md2
Labels on physical volume "/dev/md2" successfully wiped.
sudo pvremove /dev/md3
Labels on physical volume "/dev/md3" successfully wiped.
sudo pvremove /dev/md4
Labels on physical volume "/dev/md4" successfully wiped.
sudo pvremove /dev/nvme0n1p1
Labels on physical volume "/dev/nvme0n1p1" successfully wiped.
You can find the physical hard drives associated with each mdadm device using the following:
We then have to stop all the mdadm devices and zero their superblock so that we can reuse the hard drives to set up our ZFS pool.
sudo mdadm --stop /dev/md1
mdadm: stopped /dev/md1
sudo mdadm --stop /dev/md2
mdadm: stopped /dev/md2
sudo mdadm --stop /dev/md3
mdadm: stopped /dev/md3
sudo mdadm --stop /dev/md4
mdadm: stopped /dev/md4
# Normally you also need to do a --remove after the --stop,
# but it looks like the 6.5 kernel did the remove automatically.
#
# For all partitions used in the md device
for i in sdb1 sdc1 sdp1 sda1 sdo1 sdd1 sdg1 sdn1
do
sudo mdadm --zero-superblock /dev/${i}
done
Now with all of the old hard drives freed up, we can repurpose them to create our ZFS pool. Instead of using the /dev/sdX reference of the physical device, it is recommended to use /dev/disk/by-id with the manufacturer’s model and serial number so that the ZFS pool can be moved to another machine in the future. We also used the -f switch to let ZFS know that it is okay to erase the existing content on those devices. The command to create the pool we named vault is this:
zpool create -f vault mirror /dev/disk/by-id/ata-ST10000VN0008-2JJ101_ZHZ1KMA0-part1 /dev/disk/by-id/ata-WDC_WD101EFAX-68LDBN0_VCG6VRWN-part1 mirror /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA1E8GW4-part1 /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA1E8S0V-part1 mirror /dev/disk/by-id/ata-ST10000VN0004-1ZD101_ZA2C69FN-part1 /dev/disk/by-id/ata-ST10000VN0004-1ZD101_ZA2964KD-part1 mirror /dev/disk/by-id/ata-ST12000VN0008-2YS101_ZRT008SC-part1 /dev/disk/by-id/ata-ST12000VN0008-2YS101_ZV701XQV-part1
# The above created the pool with the old drives from the old LVM volume group
# We then added 4 more drives, 2 x 6TB, and 2 x 4TB drives to the pool
# Adding another 6TB mirror:
sudo zpool add -f vault mirror /dev/disk/by-id/ata-WDC_WD60EFRX-68L0BN1_WD-WX31D87HDU09-part1 /dev/disk/by-id/ata-WDC_WD60EZRZ-00GZ5B1_WD-WX11D374490J-part1
# Adding another 4TB mirror:
sudo zpool add -f vault mirror /dev/disk/by-id/ata-ST4000DM004-2CV104_ZFN0GTAK-part1 /dev/disk/by-id/ata-WDC_WD40EZRX-00SPEB0_WD-WCC4E0354579-part1
We also want to add the old NVMe as ZFS L2ARC cache.
ls -lh /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_500GB_S4P2NF0M419555D
lrwxrwxrwx 1 root root 13 Mar 2 16:02 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_500GB_S4P2NF0M419555D -> ../../nvme0n1
sudo zpool add vault cache /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_500GB_S4P2NF0M419555D
Once the pool is created, we wanted to set some pool properties so that in the future when we replace these drives with bigger drives, the pool will automatically expand.
zpool set autoexpand=on vault
With the pool created, we can then create our dataset or filesystem and its associated mount point. We also want to ensure that the filesystem also supports posixacl.
zfs create vault/airvideo
zfs set mountpoint=/mnt/av vault/airvideo
zfs set acltype=posixacl vault
zfs set acltype=posixacl vault/airvideo
We mount the new ZFS filesystem on /mnt/av because the /mnt/airvideo is soft-linked to the temporary /mnt/av2 volume that is still in operation. We first have to re-copy all our content from the temporary volume to the new ZFS filesystem.
This took around 4 days to complete. We can all breathe easy again because all the data now have redundancy again! We can now bring the new ZFS filesystem live.
sudo systemctl stop apache2.service smbd nmbd plexmediaserver.service
sudo rm /mnt/airvideo
sudo zfs set mountpoint=/mnt/airvideo vault/airvideo
sudo systemctl start apache2.service smbd nmbd plexmediaserver.service
zfs list
NAME USED AVAIL REFER MOUNTPOINT
vault 31.0T 14.2T 96K /vault
vault/airvideo 31.0T 14.2T 31.0T /mnt/airvideo
The above did not take long and the migration is completed!
df -h /mnt/airvideo
Filesystem Size Used Avail Use% Mounted on
vault/airvideo 46T 32T 15T 69% /mnt/airvideo
Getting the capacity of our new ZFS filesystem shows that we now have 46TB to work with! This should last for at least a couple of years I hope.
I also did a quick reboot of the system to ensure it can come back up with the ZFS filesystem in tack and without issues. It has now been running for 2 days. I have not collected any performance statistics, but the services all feel faster.
Our media server has reached 89% utilization and needs storage expansion. The storage makeup on the server uses Logical Volume Manager (LVM) and software RAID called mdadm. I can expand the storage by swapping out the hard drives with the least capacity with new hard drives with a larger capacity like I have previously done.
I thought I try something different this time around. I would like to switch from LVM to ZFS, an LVM alternative that is very popular with modern mass storage systems, especially with TrueNAS.
Before I can attempt the conversion, I will first need to backup all of the content from the media server. The second issue is that I needed more physical expansion space on the server to house more hard drives. The existing housings are all filled except for a single slot, which is going to be insufficient.
A related issue is that I no longer have any free SATA slots available for the new hard drives, so I purchased GLOTRENDS SA3116J PCIe SATA Adapter Card with 16 SATA Ports. Once this is installed, I have more than enough SATA ports for additional storage.
One downside of the SATA card is that it is limited to PCIe 3.0 x1 speed. This means data transfer is limited to a theoretical maximum of 1GB/s. Given that the physical hard drives top out at 200MB/s, I don’t think we need to be too concerned about this bottleneck. We will see in terms of practical usage in the future.
I am so lucky to have extra SATA power cables and extension cables laying around and my 850W existing power supply has ample power for the additional hard drives.
How do we store the additional hard drives with a full cabinet? I went to Amazon again and purchased a hard drive cage, Jaquiain 3.5 Inch HDD Hard Drive Cage 8X3.5 Inch HDD Cage. I did not have to buy any new hard drives yet, because I had plenty of old hard drives laying around. After I put together the cage with 8 really old and used hard drives, it looks something like this:
With this new additional storage, I am now able to backup the media content from my media server. However, before I do that there is one last thing that I need to do, and that is to experiment with an optimal ZFS pool configuration that will work with my content and usage. I will perform this experimentation with the additional storage before reconfiguring the old storage with ZFS. Please stay tuned for my findings.
After booting the system with 16 hard drives, I measured the power usage and it was hovering around 180W. This is not too bad, less than 2 traditional incandescent light bulbs.
Addendum:
During my setup, I had to spend hours deciphering an issue. My system did not recognize my old hard drives. After many trials, I finally narrowed down that the GLOTRENDS card is not compatible with an old 2TB Western Digital Enterprise Drive. This is the first time that I came across SATA incompatibilities.
There is another possibility that these drives were damaged by the usage of an incorrect modular power cable. I found that these drives also do not work with my USB3.0 HDD external dock as well. This gives additional credence that the physical drive has been damaged.
The troubled drive with the SATA card
All my other drives worked fine with the card.
Another discovery is that not all modular power cables will work with my ASUS ROG STRIX 850W power supply. Initially, I thought I would use an 8-pin PCIe to 6-pin adapter along with a 6-pin to SATA power cable designed for Corsair power supplies.
PCIe Power Adapter from Amazon
OwlTree PCI-e 6 Pin Male to 4 SATA 1 to 4 SATA Female Power Supply Splitter Supply Cable for Corsair Modular RM650X RM750X RM850X RM1000X
Using the above cables will cause the power supply not to start. I had to hunt for the original cables that came with the STRIX power supply.
Learned a lot from rejigging this media server. My reward is to see my server boot up with 16 hard drives and 2 NVMe SSD drives recognized. I have never built a system with so many drives and storage before.
Recently I have been faced with questions and accusations on how corrupt and dictatorial the Chinese government is to its population. Most of these comments come from people who have not visited and experienced China. Their conclusion largely stems from the feeding of Western mainstream media.
I provide this post as a source of “alternative” information so that anyone can get a quick introduction of what is the Chinese government and how is it being run?
Take a look at this TED talk by Eric Li. He quickly summarizes the differences between the Chinese government that are based on merit versus one that is based on votes practiced by the West.
Eric Li’s TED Talk: A tale of two political systems
Once you finished the above video, I encourage you to read the following answer to the Quora question included below. You can click on the question to go directly to the Quora site and gain additional insights from the other answers. I just happen to particularly like this one.
I am a Chinese, have studied in the UK and traveled to many countries.
For me, China is democratic – probably even more democratic than western countries.
Of course, I am referring to the original meaning of the word democracy – the power of the state belongs to the people and the people have the right to rule the government.
Nowadays, democracy in the west often refers to multi-party competition, where the ruling party are elected by universal suffrage.
But this approach has some significant problems. As voters are ordinary people who has no specialized knowledge on managing the country, the core competitiveness of the election process becomes the ability to publicize public opinion, personal affinity, and persuasion, which have little to do with whether they can actually formulate and implement policies well, but are more relevant to the resources of the society and the media operation behind them.
In the west, the rule of the people is in a single choice question of political preference, and the frequency of being able to make a choice is once every four years. If you are the minority voter, you will not be able to get a satisfactory result in those four years.
In contrast, China’s “democracy” works like this:
A huge system of officials that everyone can enter by studying and taking exams – from the smallest local township government to the central government, all within the same pyramid-tested promotion system. For Chinese graduates, it is a very common career selection to pick an official position related to their major from an open government list, take a test on logic and issue processing skills, and become a government official. All newcomers need to start from the basic positions and get enough practical results before they are internally elected with promotion.
The criterion value of the government affairs is “people first”. The most important judgment dimension is whether they can improve the life of the majority and satisfy the people.
Public opinion monitoring and feedback mechanism. All levels of government have set up channels to receive public opinion, such as emails, petitions reception, or social media. For every actual problem, the government must give feedback or specific plans within a period of time; and after a period of time, they must do regular follow-up visits to ensure that the problem has been solved satisfactorily. All this is counted in the KPIs of government staff. If the people are not satisfied with this government’s response, they can complain to a higher level of government, which has absolute power over the next level of government, and the government department complained against will be penalized and monitored.
In China, the rule of the people is in the government’s “people first” evaluation criteria, and in the mechanism of feedback and resolution of specific issues that are highly valued. However, if your opinion is detrimental to the interests of the underprivileged, or if you are not looking for a solution, but simply venting your negative feelings and trying to get more people to share your negative feelings, then your opinion might be refused or ignored, or be deferred in to future considerations.
I think this is why people say: in the west, you can change the government, but you can’t change the policies; however in China, you can’t change the government, but you can change the policies.
Of course, both mechanisms have their own drawbacks. For example, since the core competence of universal suffrage is the ability of influencing public opinion, so having control of the media and enough money is almost equivalent to having a high probability of obtaining the highest power in the country; in China, it is very difficult to make the complex internal promotion completely transparent, and it is not easy for the people to monitor inefficiencies and corruption inside the system.
But for me and at least 80%+ Chinese people, the current one party Chinese government is still very satisfactory.
As for the so-called “Communist Party is not the same as government”: in fact, the CCP is not the same as the Soviet Union type of “communism”, for example, China has its market economy system and is running well. Actually when there is only one political party, the notion of party advocacy would be extremely weakened. In the case of China, people would tend to feel that the Chinese system is more like a parliamentary system even within the government. China is a country with a secular culture, and ideology discussion is not really that important, what matters to this government council is simply about insisting with the people-oriented value, and making people living in better lives.
To be honest, I think that the vast majority of the world’s people don’t care about politics.
People care more about their own lives – whether they can live healthy and happy lives with the people they love, whether the society is fair, safe and free, whether they can enjoy their civil rights as a human being, whether their problems can be solved and whether their dreams can be realized.
Also, I agree that China is better for ordinary people, small and medium-sized entrepreneurs to live in, but not for the extremely rich guys. If you are a rich tycoon or celebrity and has no interest in benefiting ordinary people, then the Chinese government might supervising you with very strict rules, you will have more freedom and power in the West.
But as for me, China is not bad.
Finally, to get a deeper dive, I recommend the following book:
The New China Playbook: Beyond Socialism and Capitalism (by: Keyu Jin)